Mouse tracking: unable to move mouse-selected items
Steps to reproduce:
The following are laptop keyboards:
-
Win+tto move focus to the taskbar -
NVDA+shift+m,NVDA+ctrl+[, to move the mouse to focus and lock the left button - right arrow, to move the focus to the next icon on the right
-
NVDA+shift+m,NVDA+ctrl+[, to move the mouse to the focus and unlock the left button
Actual behavior:
The order of icons in the taskbar is not swapped
Expected behavior:
Successfully swapped the order of icons in the taskbar.
NVDA logs, crash dumps and other attachments:
System configuration
NVDA installed/portable/running from source:
install
NVDA version:
alpha-31030
Windows version:
Windows 11 Version 22H2 (OS Build 22621.3155)
Name and version of other software in use when reproducing the issue:
Input: kb(laptop):windows+t
DEBUGWARNING - RPC process 9804 (explorer.exe) (17:58:12.279) - Dummy-2 (2692):
Thread 5392, build\x86_64\remote\ia2Support.cpp, IA2Support_inProcess_terminate, 215:
WaitForMultipleObjects returned -1
DEBUGWARNING - RPC process 9804 (explorer.exe) (17:58:12.285) - Dummy-2 (2692):
Thread 5392, build\x86_64\remote\ia2Support.cpp, IA2Support_inProcess_terminate, 215:
WaitForMultipleObjects returned -1
DEBUGWARNING - RPC process 9804 (explorer.exe) (17:58:12.291) - Dummy-2 (2692):
Thread 5392, build\x86_64\remote\ia2Support.cpp, IA2Support_inProcess_terminate, 215:
WaitForMultipleObjects returned -1
IO - speech.speech.speak (17:58:12.294) - MainThread (8304):
Speaking [CharacterModeCommand(True), 't', EndUtteranceCommand()]
DEBUGWARNING - RPC process 9804 (explorer.exe) (17:58:12.297) - Dummy-2 (2692):
Thread 5392, build\x86_64\remote\ia2Support.cpp, IA2Support_inProcess_terminate, 215:
WaitForMultipleObjects returned -1
DEBUG - config.featureFlag._validateConfig_featureFlag (17:58:12.384) - UIAHandler.UIAHandler.MTAThread (13380):
Validating feature flag: DEFAULT, optionsEnum: WindowsTerminalStrategyFlag, behaviorOfDefault: DIFFING
IO - speech.speech.speak (17:58:12.385) - MainThread (8304):
Speaking ['终端', '按钮', '终端 已固定', CancellableSpeech (still valid)]
IO - speech.speech.speak (17:58:13.158) - MainThread (8304):
Speaking ['工具提示', CancellableSpeech (still valid)]
IO - inputCore.InputManager.executeGesture (17:58:15.558) - winInputHook (25976):
Input: kb(laptop):rightArrow
IO - speech.speech.speak (17:58:15.601) - MainThread (8304):
Speaking ['Git Bash', '按钮', 'Git Bash 已固定', CancellableSpeech (still valid)]
IO - inputCore.InputManager.executeGesture (17:58:16.400) - winInputHook (25976):
Input: kb(laptop):leftArrow
IO - speech.speech.speak (17:58:16.434) - MainThread (8304):
Speaking ['终端', '按钮', '终端 已固定', CancellableSpeech (still valid)]
IO - speech.speech.speak (17:58:17.284) - MainThread (8304):
Speaking ['工具提示', CancellableSpeech (still valid)]
IO - inputCore.InputManager.executeGesture (17:58:19.870) - winInputHook (25976):
Input: kb(laptop):NVDA+shift+m
IO - speech.speech.speak (17:58:19.894) - MainThread (8304):
Speaking ['终端 终端 已固定']
IO - inputCore.InputManager.executeGesture (17:58:21.753) - winInputHook (25976):
Input: kb(laptop):NVDA+control+[
IO - speech.speech.speak (17:58:21.753) - MainThread (8304):
Speaking ['按下鼠标左键']
IO - inputCore.InputManager.executeGesture (17:58:24.938) - winInputHook (25976):
Input: kb(laptop):NVDA+shift+]
IO - speech.speech.speak (17:58:24.969) - MainThread (8304):
Speaking ['Git Bash', '按钮', 'Git Bash 已固定', CancellableSpeech (still valid)]
IO - inputCore.InputManager.executeGesture (17:58:27.987) - winInputHook (25976):
Input: kb(laptop):NVDA+shift+m
IO - speech.speech.speak (17:58:28.025) - MainThread (8304):
Speaking ['Git Bash Git Bash 已固定']
IO - inputCore.InputManager.executeGesture (17:58:29.827) - winInputHook (25976):
Input: kb(laptop):NVDA+control+[
IO - speech.speech.speak (17:58:29.829) - MainThread (8304):
Speaking ['松开鼠标左键']
Input: kb(laptop):windows+t
IO - inputCore.InputManager.executeGesture (17:58:40.352) - winInputHook (25976):
Input: kb(laptop):rightArrow
IO - speech.speech.speak (17:58:40.393) - MainThread (8304):
Speaking ['Git Bash', '按钮', 'Git Bash 已固定', CancellableSpeech (still valid)]
IO - inputCore.InputManager.executeGesture (17:58:41.098) - winInputHook (25976):
Input: kb(laptop):leftArrow
IO - speech.speech.speak (17:58:41.128) - MainThread (8304):
Speaking ['终端', '按钮', '终端 已固定', CancellableSpeech (still valid)]
IO - speech.speech.speak (17:58:41.984) - MainThread (8304):
Speaking ['工具提示', CancellableSpeech (still valid)]
IO - inputCore.InputManager.executeGesture (17:58:42.725) - winInputHook (25976):
Input: kb(laptop):rightArrow
IO - speech.speech.speak (17:58:42.770) - MainThread (8304):
Speaking ['Git Bash', '按钮', 'Git Bash 已固定', CancellableSpeech (still valid)]
IO - speech.speech.speak (17:58:43.595) - MainThread (8304):
Speaking ['工具提示', CancellableSpeech (still valid)]
IO - inputCore.InputManager.executeGesture (17:58:47.640) - winInputHook (25976):
Other information about your system:
It seemed to work in the previous system.
This problem also exists when moving the mouse using the gold cursor add-on. However, it works when moving the mouse using the system's mouse key. I suspect a problem with the system API used
Other questions
Does the issue still occur after restarting your computer?
Yes
Have you tried any other versions of NVDA? If so, please report their behaviors.
Yes
If NVDA add-ons are disabled, is your problem still occurring?
Yes
Does the issue still occur after you run the COM Registration Fixing Tool in NVDA's tools menu?
Yes
Is your STR correct? With your STR, your mouse locks and unlocks at the same position, so the icon should not move.
Here is a corrected STR, not tested, to achieve what you want:
- Win+t to move focus to the taskbar
- NVDA+shift+m, NVDA+ctrl+[, to move the mouse to focus and lock the left button
- right arrow, to move the focus to the next icon on the right
- NVDA+shift+m, NVDA+ctrl+[, to move the mouse to the focus and unlock the left button
Is your STR correct? With your STR, your mouse locks and unlocks at the same position, so the icon should not move.
Here is a corrected STR, not tested, to achieve what you want:
1. Win+t to move focus to the taskbar 2. NVDA+shift+m, NVDA+ctrl+[, to move the mouse to focus and lock the left button 3. right arrow, to move the focus to the next icon on the right 4. NVDA+shift+m, NVDA+ctrl+[, to move the mouse to the focus and unlock the left button
Sorry, I did have a problem with the steps, it was a clerical error on my part, not the right arrow. It's because the arrow keys can't navigate between the icons after pressing the left mouse button.
I also forgot to write NVDA+shift+m.
The way NVDA moves the mouse seems to be setCursorPos, without passing the state of the mouse buttons.