Fix Screen Curtain for Windows 10/11 insiders#12684
Conversation
michaelDCurran
left a comment
There was a problem hiding this comment.
A similar note to the one in changes.t2t should be added to the user Guide in the Screen Curtain section.
|
It might be interesting to prove this point by testing the magnification API on X64 Python. Also I wonder whether we can system test this. If the screen curtain is active, the screen is black, so taking a screen bitmap would only reveal blackness. |
04677d2 to
fe657a0
Compare
Currently working on creating minimal examples of this in Python and C++ to test as WOW64 vs 64bit interprets and compliers. It's possible that the issue is being introduced elsewhere or for different reasons.
Possibly, though AppVeyor would only be testing a certain Windows build of course. I would be looking to include something to automate testing this with an accompanying fix. |
|
I thought it already was, since on this windows 7 machine I see mention of
it but do not think it has any effect at all.
|
8328487 to
01d9be5
Compare
See test results for failed build of commit 282d875965 |
43dc90e to
b3336d1
Compare
7230804 to
e72295f
Compare
e72295f to
085bbd6
Compare
Link to issue number:
Fix for #12491
Summary of the issue:
Screen curtain does not work as intended for new Windows builds. This is due to an API change. Previously, NVDA used a fully transparent colour transformation to create the screen curtain, which now no longer results in a black screen.
In the future, the API is unstable: "The Magnification API is not supported under WOW64; that is, a 32-bit magnifier application will not run correctly on 64-bit Windows.".
Description of how this pull request fixes the issue:
Implements the screen curtain with a fully solid opacity.
Adds a warning to test newer Windows builds when using screen curtain.
Testing strategy:
Known issues with pull request:
This may occur again in the future due to the API not being fully supported, or another undefined behaviour change like this one. It would be good to add a test that confirms the screen is black using an independent tool, and/or move towards a different API.
Change log entries:
See PR
Code Review Checklist: