Duplicating an object or mesh geometry quickly followed by a MMB gesture locks to wrong axis. #84473

Closed
opened 2021-01-06 22:55:42 +01:00 by Paul R · 11 comments

System Information
Operating system: SUSE Leap 15.1
Graphics card: NVidia RTX 2070 Super (official drivers)

Blender Version
Broken: 2.91.0, 6f3a9031f7, x86_64 linux, 2020-10-03
Worked: 2.91.0, cacd57b67a, x86_64 linux, 2020-09-17

(Still happening in the official 2.91.0 release and also a 2.92 build from today)

Short description of error
When an object (or mesh geometry) is duplicated with shift+d and then quickly followed by a middle mouse button click to lock to the cursor direction, it ends up locking to the opposite axis - so a vertical cursor gesture will lock horizontally.

Adding a pause between duplicating and the MMB click avoids this happening, but conciously slowing down is easier said than done once it becomes muscle memory.

Exact steps for others to reproduce the error

  1. Switch to orthagraphic front view
  2. Select the default cube
  3. While moving the cursor slowly down the page; in quick succession do shift+d then MMB click to constrain axis to the gesture direction.
  4. The cube will end up locked horizontally

Note: From slowing down a screen capture, the two operations happen within about 100ms (6 frames at 60fps). This might seem quick but regular typing has similar timings between key presses - so hopefully this isn't seen as nitpicking!

See video below, slowed down to 12.5%:
blender_move_gesture_slowmo_2.mp4

**System Information** Operating system: SUSE Leap 15.1 Graphics card: NVidia RTX 2070 Super (official drivers) **Blender Version** Broken: 2.91.0, 6f3a9031f7b9, x86_64 linux, 2020-10-03 Worked: 2.91.0, cacd57b67a15, x86_64 linux, 2020-09-17 (Still happening in the official 2.91.0 release and also a 2.92 build from today) **Short description of error** When an object (or mesh geometry) is duplicated with shift+d and then quickly followed by a middle mouse button click to lock to the cursor direction, it ends up locking to the opposite axis - so a vertical cursor gesture will lock horizontally. Adding a pause between duplicating and the MMB click avoids this happening, but conciously slowing down is easier said than done once it becomes muscle memory. **Exact steps for others to reproduce the error** 1. Switch to orthagraphic front view 2. Select the default cube 3. While moving the cursor slowly down the page; in quick succession do shift+d then MMB click to constrain axis to the gesture direction. 4. The cube will end up locked horizontally Note: From slowing down a screen capture, the two operations happen within about 100ms (6 frames at 60fps). This might seem quick but regular typing has similar timings between key presses - so hopefully this isn't seen as nitpicking! See video below, slowed down to 12.5%: [blender_move_gesture_slowmo_2.mp4](https://archive.blender.org/developer/F9553535/blender_move_gesture_slowmo_2.mp4)
Author

Added subscriber: @intracube

Added subscriber: @intracube

Added subscriber: @Stan_Pancakes

Added subscriber: @Stan_Pancakes

You're clicking MMB before releasing shift (easily happens when pressing in quick succession). Meaning that what actually happens is Shift+MMB, and so you exclude Z axis instead of locking it ;)

You're clicking MMB before releasing shift (easily happens when pressing in quick succession). Meaning that what actually happens is Shift+MMB, and so you exclude Z axis instead of locking it ;)
Author

In #84473#1088585, @Stan_Pancakes wrote:
You're clicking MMB before releasing shift (easily happens when pressing in quick succession). Meaning that what actually happens is Shift+MMB, and so you exclude Z axis instead of locking it ;)

Ah, you're right! So it's not related to timings at all.

Any idea what changes to the key mapping caused this? The 2020-09-17 release doesn't exclude/invert the axis if shift is held down.

> In #84473#1088585, @Stan_Pancakes wrote: > You're clicking MMB before releasing shift (easily happens when pressing in quick succession). Meaning that what actually happens is Shift+MMB, and so you exclude Z axis instead of locking it ;) Ah, you're right! So it's not related to timings at all. Any idea what changes to the key mapping caused this? The 2020-09-17 release doesn't exclude/invert the axis if shift is held down.

Probably 6fda30cc54

Probably 6fda30cc54

Added subscriber: @mano-wii

Added subscriber: @mano-wii

Changed status from 'Needs Triage' to: 'Needs User Info'

Changed status from 'Needs Triage' to: 'Needs User Info'

Before, the key {key Shift} was used as a modifier that changed the state of AutoConstraint to AutoConstraintPlane.
However this has been changed and now AutoConstraintPlane is called directly with {key Shift MMB}.
This change allowed the keymap to be customized and makes the header more descriptive during the operation.

The behavior seen is kind of expected as the key {key Shift} continues to be pressed.
Returning to the previous behavior would require a kind of hack in the code and it would not be simple.

Is this really something that gets in the way of workflow?

Before, the key {key Shift} was used as a modifier that changed the state of `AutoConstraint` to `AutoConstraintPlane`. However this has been changed and now `AutoConstraintPlane` is called directly with {key Shift MMB}. This change allowed the keymap to be customized and makes the header more descriptive during the operation. The behavior seen is kind of expected as the key {key Shift} continues to be pressed. Returning to the previous behavior would require a kind of hack in the code and it would not be simple. Is this really something that gets in the way of workflow?
Author

OK, this new behaviour seems in line with other operations like copy/pasting with {key Ctrl C}/{key V}, where {key Ctrl } might be held down between operations.

As a workaround, since I don't use the inverse axis constraint, changing the second of the Automatic Constraint keymap preferences from:
Keymap-->Transform Modal Map-->Automatic Constraint Plane
to
Keymap-->Transform Modal Map-->Automatic Constraint
means the transform always snaps to the mouse direction.

T84483_workaround.png

I can't see any adverse effect from doing that, so this report can be closed. Thanks for the explanation!

OK, this new behaviour seems in line with other operations like copy/pasting with {key Ctrl C}/{key V}, where {key Ctrl } might be held down between operations. As a workaround, since I don't use the inverse axis constraint, changing the second of the `Automatic Constraint` keymap preferences from: `Keymap-->Transform Modal Map-->Automatic Constraint Plane` to `Keymap-->Transform Modal Map-->Automatic Constraint` means the transform always snaps to the mouse direction. ![T84483_workaround.png](https://archive.blender.org/developer/F9558895/T84483_workaround.png) I can't see any adverse effect from doing that, so this report can be closed. Thanks for the explanation!

Changed status from 'Needs User Info' to: 'Archived'

Changed status from 'Needs User Info' to: 'Archived'

I can't think of a simple solution, but I am aware of the regression.
Thanks for the report.

I can't think of a simple solution, but I am aware of the regression. Thanks for the report.
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
3 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#84473
No description provided.