[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-commits] [tor-browser/tor-browser-68.1.0esr-9.0-2] Bug 31607: App menu items stop working on macOS



commit 1da04ce775a4994924a2c8154fb1f76c663a5eff
Author: Kathy Brade <brade@xxxxxxxxxxxxxxxxx>
Date:   Thu Oct 3 10:53:43 2019 -0400

    Bug 31607: App menu items stop working on macOS
    
    Avoid re-creating the hidden window, since this causes the nsMenuBarX
    object that is associated with the app menu to be freed (which in
    turn causes all of the app menu items to stop working).
    
    More detail: There should only be one hidden window.
    XREMain::XRE_mainRun() contains an explicit call to create the
    hidden window and that is the normal path by which it is created.
    However, when Tor Launcher's wizard/progress window is opened during
    startup, a hidden window is created earlier as a side effect of
    calls to nsAppShellService::GetHiddenWindow(). Then, when
    XREMain::XRE_mainRun() creates its hidden window, the original one
    is freed which also causes the app menu's nsMenuBarX object which
    is associated with that window to be destroyed. When that happens,
    the menuGroupOwner property within each Cocoa menu items's MenuItemInfo
    object is cleared. This breaks the link that is necessary for
    NativeMenuItemTarget's menuItemHit method to dispatch a menu item
    event.
---
 xpfe/appshell/nsAppShellService.cpp | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/xpfe/appshell/nsAppShellService.cpp b/xpfe/appshell/nsAppShellService.cpp
index b09534c8841d..cb76f1ab45d5 100644
--- a/xpfe/appshell/nsAppShellService.cpp
+++ b/xpfe/appshell/nsAppShellService.cpp
@@ -85,6 +85,10 @@ NS_IMPL_ISUPPORTS(nsAppShellService, nsIAppShellService, nsIObserver)
 
 NS_IMETHODIMP
 nsAppShellService::CreateHiddenWindow() {
+  if (mHiddenWindow) {
+    return NS_OK;
+  }
+
   return CreateHiddenWindowHelper(false);
 }
 

_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits