nvda
nvda copied to clipboard
Open modals crash NVDA when exiting
While gui.message.messageBox
protects crashes when exiting, other modal dialogs are not protected.
Usage of ShowModal
and gui.runScriptModalDialog
cause crashes or undefined behaviour when exiting nvda
Steps to reproduce:
- On a web page, open a NVDA find dialog (NVDA+F3)
- Exit NVDA
- Note that NVDA doesn't exit and cannot exit in future, it is now in an indeterminate state
- Install a new copy of NVDA
- Wait for the usage statistics dialog to open
- Exit NVDA
- Note that NVDA crashes
- Change the user language of NVDA
- Wait for the "Restart NVDA for the language change to take affect" dialog to open
- Exit NVDA
- Note that NVDA doesn't exit and cannot exit in future, it is now in an indeterminate state
- Go to vision in NVDA preferences, activate screen curtain
- Wait for the screen curtain warning dialog to open
- Exit NVDA
- Note that NVDA doesn't exit and cannot exit in future, it is now in an indeterminate state
Actual behavior:
NVDA has crashed or partially exited, requiring a manual restart.
Expected behavior:
Exiting should be blocked until these modals are closed or handled.
A pattern like messageBox
should be implemented instead.
See #13007 for suggested pattern designs.
System configuration
NVDA installed/portable/running from source:
installed and source
NVDA version:
2021.3.4, 2022.1beta3