Double tap to confirm and drag support for translation tools.
Open, NormalPublic

Description

Note: This patch is an update of #29919. An error prevented me from uploading an updated patch and I could find no way to edit the description so I created a new patch. The other can be closed.

* This patch is against svn r43583

Changes:

* A new option for the transform tool allows the user to press the grab/rotate/resize button while the tool is already active to confirm the current transformation. If the option is on then in the case of switching rotation modes, this functionality has been moved to Shift-R instead. When using a transform tool bound to right click, right clicking will confirm instead of cancel; otherwise it will cancel like before.
* A new option for holding the transform button/key to drag the object. If the user holds for longer than 250ms or farther than 10 pixels then the action is treated like a drag and when the key is released the transformation is automatically confirmed.

Notes:

* This patch removes some duplicate code in the modal handler for transform events.
* In order to support this patch some slight changes have been made in the way handler operators are called. Duplicate button/key presses are now filtered by the handler and not sent to the operator, and information about the handler/keymapitem which invoked the operator (if any) have been added to the wmOperator structure.
* The previous event state also now includes the "prevkeytime" - the time that the previous keyboard key was pressed.

Justification:

This patch attempts to improve the usability of the transformation tools by implementing behavior which most users will expect. If a button is pressed once to activate a tool, than users can expect to be able to press that same button again to deactivate the tool. If the user presses and holds the button then the functionality should remain active for as long an the button is held down and then deactivate when it is released.

Since the new behavior is optional and defaults to off, it should have no impact on existing Blender users.

Details

Type
Patch