mac: Make sure menuWillShow is called when setting application menu.
authorCheng Zhao <zcbenz@gmail.com>
Sun, 25 May 2014 07:42:23 +0000 (15:42 +0800)
committerCheng Zhao <zcbenz@gmail.com>
Sun, 25 May 2014 07:42:23 +0000 (15:42 +0800)
atom/browser/api/lib/menu.coffee

index acc6324..0cf894c 100644 (file)
@@ -97,6 +97,12 @@ Menu.setApplicationMenu = (menu) ->
   applicationMenu = menu  # Keep a reference.
 
   if process.platform is 'darwin'
+    # Force menuWillShow to be called
+    menuWillShow = (menu) ->
+      menu.delegate.menuWillShow()
+      menuWillShow item.submenu for item in menu.items when item.submenu?
+    menuWillShow menu
+
     bindings.setApplicationMenu menu
   else
     windows = BrowserWindow.getAllWindows()