Skip to content

changed magnifier uninitialize#20069

Draft
Boumtchack wants to merge 5 commits into
nvaccess:betafrom
France-Travail:fix/MagnifierStartup
Draft

changed magnifier uninitialize#20069
Boumtchack wants to merge 5 commits into
nvaccess:betafrom
France-Travail:fix/MagnifierStartup

Conversation

@Boumtchack
Copy link
Copy Markdown
Contributor

Link to issue number:

fix #20068

Summary of the issue:

Stopping and restarting the fullscreen magnifier fails with OSError: [WinError 0] from MagSetFullscreenTransform.

Description of user facing changes:

The fullscreen magnifier can now be stopped and restarted reliably.

Description of developer facing changes:

  • _stopMagnifier() no longer calls MagUninitialize(), only resets the transform to neutral
  • New _finalUninitializeNativeMagnification() called from terminate() on NVDA shutdown
  • _nativeApiInitialized flag ensures MagInitialize() is only called once per session

Description of development approach:

The MagInitialize → MagUninitialize → MagInitialize cycle within the same process causes MagSetFullscreenTransform to silently return FALSE with no error code. The fix keeps the API initialized for the NVDA session lifetime and defers MagUninitialize() to shutdown.

Testing strategy:

manual

Known issues with pull request:

Code Review Checklist:

  • Documentation:
    • Change log entry
    • User Documentation
    • Developer / Technical Documentation
    • Context sensitive help for GUI changes
  • Testing:
    • Unit tests
    • System (end to end) tests
    • Manual testing
  • UX of all users considered:
    • Speech
    • Braille
    • Low Vision
    • Different web browsers
    • Localization in other languages / culture than English
  • API is compatible with existing add-ons.
  • Security precautions taken.

@CyrilleB79
Copy link
Copy Markdown
Contributor

In the first days of NVDA magnifier, we may have to do as follows, either to compare both magnifiers or in case of a still unknown bug in NVDA magnifier:

  • start NVDA
  • start NVDA magnifier
  • Exit NVDA Magnifier
  • start Windows Magnifier

I am afraid we won't be able to do so anymore. Do you confirm this? If yes, isn't it possible to find another solution?

@seanbudd seanbudd changed the base branch from master to beta May 11, 2026 08:19
@seanbudd seanbudd added this to the 2026.2 milestone May 11, 2026
@seanbudd seanbudd changed the base branch from beta to master May 11, 2026 09:33
@seanbudd seanbudd changed the base branch from master to beta May 11, 2026 09:33
@SaschaCowley SaschaCowley changed the title changed magnifier uninitalize changed magnifier uninitialize May 12, 2026
@seanbudd
Copy link
Copy Markdown
Member

I think work on this should be blocked/suspended until #20051 is merged

@wmhn1872265132
Copy link
Copy Markdown
Contributor

Please note that the target branch for this PR and some other PRs has been changed to beta, so when merging upstream changes, please choose to merge the beta branch instead of the master branch.

@Boumtchack
Copy link
Copy Markdown
Contributor Author

ah yeah, didn't see that, I'll make the changes
thanks!

Boumtchack and others added 5 commits May 18, 2026 14:28
…A grids in focus mode. (nvaccess#20091)

Fixes nvaccess#17750.
Summary of the issue:

When moving to an ARIA grid cell in focus mode in web browsers, NVDA previously reported both the row and column headers even if only the row or only the column changed.
Description of user facing changes:

When moving to an ARIA grid cell in focus mode in web browsers, NVDA no longer reports both the row and column headers even if only the row or only the column changed.
Description of development approach:

Previously, there were two problems:

    After c4c3da6 (BrowseModeDocumentTextInfo.getControlFieldSpeech: Report the name of groupings (such as fieldsets) for quicknav and focus jumps, similar to how landmark labels are reported. nvaccess#7435), Browse mode was updating the speech properties cache before speaking the focused object, even in focus mode. That meant that the row and column coordinates for the newly focused cell were already cached before NVDA spoke it, which made NVDA behave as if the coordinates never changed. The fix is to update the cache from the TextInfo after speaking the focused object.
    Virtual buffers just used the IA2 unique id as the table id, but NVDAObjects use both the window handle and id, meaning that these didn't compare correctly in the speech cache. The fix is to make the vbuf normalize table ids to windowHandle and id.
…t value is no longer considered the default. (nvaccess#20156)

Summary of the issue:

Currently, the issue template submits the first option in the single-select dropdown as the default value. If the issue template is not filled out correctly when submitting an issue, these default values may mislead us in assessing the issue.
Description of user facing changes:

When submitting an issue, users need to select their answers more clearly.
Description of developer facing changes:
Description of development approach:

Reorder the dropdown options in the issue template so that the default value is no longer considered the default.
@Boumtchack Boumtchack force-pushed the fix/MagnifierStartup branch from 222d74a to 8283661 Compare May 18, 2026 12:38
@seanbudd seanbudd added the conceptApproved Similar 'triaged' for issues, PR accepted in theory, implementation needs review. label May 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

conceptApproved Similar 'triaged' for issues, PR accepted in theory, implementation needs review.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

An error message is reported to the user every other startup of the Magnifier

7 participants