-
-
Notifications
You must be signed in to change notification settings - Fork 746
Description
Is your feature request related to a problem? Please describe
Users may want to use NVDA's new Magnifier functionality with a touch input. Currently, the magnifier doesn't add any touch input translation, so touch events reach the operating system as though magnification is disabled.
For instance, if the full screen magnifier is enabled and showing the upper right of the screen, tapping in the bottom left corner of the screen will still correspond to touching the start button (assuming that is where one's start button usually is).
Describe the solution you'd like
Transform pen and touch input coordinates from magnified to unmagnified coordinates so that they work as users are likely to expect.
The MagSetInputTransform function is almost certainly what is needed here.
Describe alternatives you've considered
When magnification is enabled, intercept all touch events and present a message to the user that pen and touch input are unavailable while magnifier is enabled.
Additional context
According to the docs, MagSetInputTransform requires UIAccess privilege. This means that we aren't going to be able to use it in portable, launcher, source or unsigned copies of NVDA. This may necessitate simply showing a dialog to the user that touch input won't work as expected when zoomed in if they have a touchscreen connected, as I think system-wide interception of touch events also requires UI Access.