Skip to content

Open modals crash NVDA when exiting #13579

@seanbudd

Description

@seanbudd

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:

  1. On a web page, open a NVDA find dialog (NVDA+F3)
  2. Exit NVDA
  3. Note that NVDA doesn't exit and cannot exit in future, it is now in an indeterminate state

  1. Install a new copy of NVDA
  2. Wait for the usage statistics dialog to open
  3. Exit NVDA
  4. Note that NVDA crashes

  1. Change the user language of NVDA
  2. Wait for the "Restart NVDA for the language change to take affect" dialog to open
  3. Exit NVDA
  4. Note that NVDA doesn't exit and cannot exit in future, it is now in an indeterminate state

  1. Go to vision in NVDA preferences, activate screen curtain
  2. Wait for the screen curtain warning dialog to open
  3. Exit NVDA
  4. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bug/crashcomponent/NVDA-GUIp2https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#prioritytriagedHas been triaged, issue is waiting for implementation.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions