Regression: Pressing multiple modifier keys at the same time locks mouse click #109525
Operating system: Windows-10-10.0.22621-SP0 64 Bits
Graphics card: NVIDIA GeForce RTX 3070/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 535.98
Cannot reproduce it on linux.
Broken: 3.4, 3.5, 3.6.0, 4.0alpha
Worked: 3.2 , 3.3.8
Short description of error
Pressing multiple modifier keys at the very same time, and holding them, makes the mouse clicks not work on the 3d viewport.
Sometimes only the first two mouse left clicks work. That can also can happen with only two modifier keys, like holding ctrl and shift at the same time in edit mode to pick shortest path, but with three modifier keys it is easier to reproduce it.
Exact steps for others to reproduce the error
press left ctrl + left alt + left shift at the very same time and hold
left mouse click to togge the cube selection (if it works, you didn't press the modifier keys at the exact same time)
if it didn't work you found the bug.
you can also try this on edit mode (edge ring select).
Reproduced with three and two keys in Win 10 22H2
Did not work for me in Blender releases below, including the one the OP says it worked on:
3.6.0 release June 27
3.3.8 release June 20
3.2.2 Aug 3, 22
3.2.1 Jul 6, 22
3.2.0 Jun 8, 22
CTRL + SHIFT + ALT and CTRL + SHIFT and ALT + SHIFT
respond to clicking on object in the viewport to select/deselect, but not outside an object in an empty space in the viewport.
CTRL and ALT alone, respond to neither.
SHIFT alone, responds to clicking on object, but not outside an object in an empty space in the viewport.
Could be the normal behavior.
Have to be very precise for three keys, pressing and holding all three keys at the very same time. Mouse becomes locked, it moves around, but no clicking, until you release the keys. And also confirmed, that sometimes it clicks haphazardly, a couple of times and then refuses to click after that.
Also, in the outliner, while holding the three keys and ALT+SHIFT, CTRL+ALT, objects are highlighted when you hover over them, but clicking does nothing, until you release the keys.
I cannot reproduce this with either the latest stable or current development versions of Blender.
But I noticed that the selection holding
Ctrl behaves different from the rest. When holding
Ctrl the selection needs to be made at the origin of the object instead of its geometry.
Could this be what the report is trying to describe?
Please try the latest daily build: https://builder.blender.org/download/ and de sure to use
Factory Settings (Go to File → Defaults → Load Factory Settings)
I can also reproduce it on the latest 4.0 build with factory settings, also on windows.
Can't reproduce it on linux .
@PratikPB2123 running with --debug-events the console goes crazy if I press the modifier keys at the same time. I've attached a video.
Running --debug-events in blender 3.2 it works fine as i've reported, and the console looks alright, also attached a video below.
Thanks. Still not able to replicate it locally.
Which keyboard layout is active?
Thanks. I can notice some differences in selection based on cursor position.
Mouse click is detected when both modifiers keys are pressed but no hit is found over object.
@Gilberto.R , could you move cursor to the different position over cube and see if it selects the object?
(keyboard layout makes no difference, I can confirm with other keyboard layouts too)
Yes, I've tried moving the mouse, in this case we have to click near the object origin, but if I press the modifier keys at the same time it still doesn't work, with the mouse on the same location.
Not sure why this happens though. Will forward to devs for further investigation.
I've bisected it.
Fix T100582: Windows-10 Switching Desktops locks Ctrl Key Regression in recent fix for T66088 . caused by much older problem introduced with  & . Unlike other platforms, as of  GHOST/Win32 was keeping track of the pressed modifier keys. Since GHOST/Win32 cleared the modifier state on window activation  and only changes to modifier state would generate key events, activating the window and releasing the modifier would not send the release event. Resolve this by removing the stored modifier state from GHOST/Win32, always passing modifier press/release events through to Blender (matching other GHOST back-ends). Instead, use key-repeat detection to prevent repeated modifier keys from being generated - an alternate solution to T26446. : 8bc76bf4b957c51ddc5a13c6305f05c64b218a27 : d6b43fed313b60bb6a269680b3c5622955b8a690 : 6b987910e43ff5f91512a3c361ea3141590d4e45
intern/ghost/intern/GHOST_SystemWin32.cpp | 97 ++++++-------------------------
intern/ghost/intern/GHOST_SystemWin32.h | 27 +--------
2 files changed, 19 insertions(+), 105 deletions(-) "
Thanks for bisecting @Gilberto.R . Did not notice this is a regression
While this commit points back to my commit:
37d835f0bc, I think it would be better to understand the problem and check if it can be resolves, instead of reverting back to the old behavior.
This would re-introduce logic where GHOST/WIN32 would keep track of held modifiers in a way that could get out of sync, causing bugs too. Furthermore, this caused behavior on WIN32 that didn't match Linux/macOS ... making changes to the event system more difficult (see #40317).
Harley has said he's able to investigate this, otherwise I can check on it although I'll need to setup a system running MS-Windows.
Deleting a branch is permanent. Although the deleted branch may exist for a short time before cleaning up, in most cases it CANNOT be undone. Continue?