You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Reported by jteh on 2014-01-08 06:36
Many newer screens have higher DPI than the traditional 96 DPI. If an application isn't DPI aware, Windows will virtualise and scale the application.
Currently, NVDA isn't DPI aware. Because of the virtualisation, most of the locations we use are scaled appropriately; e.g. Win32 functions. Unfortunately, this doesn't appear to be entirely accurate, so routing the mouse often routes to the wrong position despite the scaling, causing issues such as #3703. Also, apps with custom IAccessible* implementations don't have locations virtualised.
We need to:
Mark NVDA as DPI aware. We can do this via the manifest, but that doesn't work for source copies, so we will probably use the user32.SetProcessDPIAware function instead.
Make display model handle DPI awareness. If the process isn't DPI aware, any coordinates need to be transposed.
Make sure our GUI can cope with DPI awareness. This could be problematic if wx has DPI awareness issues. log viewer doesn't respect large fonts #356 is a problem we have already despite being DPI unaware.
One other issue is that there may be apps with custom IAccessible* implementations that are DPI unaware. That will be tricky to handle. My feeling is that we should cross that bridge when a specific case arises. Blocked by #3782 Blocking #3703
Reported by jteh on 2014-01-08 06:36
Many newer screens have higher DPI than the traditional 96 DPI. If an application isn't DPI aware, Windows will virtualise and scale the application.
Currently, NVDA isn't DPI aware. Because of the virtualisation, most of the locations we use are scaled appropriately; e.g. Win32 functions. Unfortunately, this doesn't appear to be entirely accurate, so routing the mouse often routes to the wrong position despite the scaling, causing issues such as #3703. Also, apps with custom IAccessible* implementations don't have locations virtualised.
We need to:
One other issue is that there may be apps with custom IAccessible* implementations that are DPI unaware. That will be tricky to handle. My feeling is that we should cross that bridge when a specific case arises.
Blocked by #3782
Blocking #3703