-
-
Notifications
You must be signed in to change notification settings - Fork 634
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix mouse tracking in Electron. #17225
base: master
Are you sure you want to change the base?
Conversation
For code organization, is it necessary to create a separate Electron module? Are there any optimization suggestions for determining object hits? |
Co-authored-by: Sean Budd <[email protected]>
Co-authored-by: Sean Budd <[email protected]>
See test results for failed build of commit 54863ba794 |
obj.role == controlTypes.Role.PANE | ||
and obj.previous | ||
and obj.previous.lastChild | ||
and obj.previous.lastChild.windowClassName == "Chrome_RenderWidgetHostHWND" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this seems fragile and may include other documents unexpectedly
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you have any suggestions?
Adding more constraints like before? Does this add more overhead?
I haven't encountered any problems with it in practice, at least so far.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ideally this would have an ID we could query to positively identify it.
Or even better, would just get fixed on the Electron side
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unfortunately, I'm afraid that won't work.
In the comment pointed to by the link above, I mentioned that there are differences in the mouse objects that prevent the use of 'Chrome_WidgetWin_1' as a judgment condition.
BTW, this PR will also fix the issue of not being able to find the status bar in VS Code. |
Hi @SaschaCowley @seanbudd |
We won't accept the current approach. We may come back later with suggested alternatives if we can think of any, but the current approach is too fragile and risky. |
Link to issue number:
Fixed #17108, #17190
Summary of the issue:
A fix was introduced in recent Electron applications that caused the mouse tracking to stay on a pane control that covered the entire window.
Unfortunately, since we can't fix it on Electron's part, we have to fix it in NVDA.
Description of user facing changes
Mouse tracking works in Electron applications.
Description of development approach
Use
objectFromPointRedirect
to redirect the object under the mouse to the correct object.Testing strategy:
Manual testing, e.g. mouse tracking works correctly in VS COde 1.92 and higher.
Known issues with pull request:
None
Code Review Checklist:
@coderabbitai summary