Skip to content

gui.safeAppExit is called too early making it impossible for add-ons to cleanup their own GUI #12325

@lukaszgo1

Description

@lukaszgo1

Regression from #12286

Steps to reproduce:

  1. Install an add-on which adds menu items to NVDA menu such as Unicorn DVC, NVDA Remote etc.
  2. Exit NVDA and inspect the log from the previous run.

Actual behavior:

Entries similar to the following can be seen:

DEBUG - gui.safeAppExit (17:40:54.104) - MainThread (5908):
destroying system tray icon and menu
DEBUG - gui.safeAppExit (17:40:54.124) - MainThread (5908):
destroying main frame during exit process
DEBUG - gui.safeAppExit (17:40:54.124) - MainThread (5908):
closing window <wx._core.Frame object at 0x0B26C620> during exit process
DEBUG - gui.safeAppExit (17:40:54.124) - MainThread (5908):
closing window <gui.ExitDialog object at 0x0B54FE90> during exit process
INFO - core.main (17:40:54.144) - MainThread (5908):
Exiting
DEBUG - core._terminate (17:40:54.144) - MainThread (5908):
Terminating watchdog
DEBUG - core._terminate (17:40:54.144) - MainThread (5908):
Terminating global plugin handler
ERROR - globalPluginHandler.terminate (17:40:54.144) - MainThread (5908):
Error terminating global plugin <globalPlugins.unicorn.GlobalPlugin object at 0x09F20730>
Traceback (most recent call last):
  File "globalPluginHandler.py", line 41, in terminate
    plugin.terminate()
  File "userConfig\addons\unicornNVDA\globalPlugins\unicorn\__init__.py", line 132, in terminate
    gui.mainFrame.sysTrayIcon.menu.Remove(self.submenu_item)
RuntimeError: wrapped C/C++ object of type Menu has been deleted

Expected behavior:

Add-ons should be able to clean up their own gui.

System configuration

NVDA installed/portable/running from source:

From sources

NVDA version:

Current master as of 22--th of April

Windows version:

Windows 7 x64

Name and version of other software in use when reproducing the issue:

None

Other information about your system:

Other questions

Does the issue still occur after restarting your computer?

Yes

Have you tried any other versions of NVDA? If so, please report their behaviors.

Versions before #12286 do not have this problem.

If add-ons are disabled, is your problem still occurring?

No but this issue is about NVDA interaction with add-ons

Does the issue still occur after you run the COM Registration Fixing Tool in NVDA's tools menu?

N/A

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions