Prevent submenu from getting destroyed bebore the container menu.
authorCheng Zhao <zcbenz@gmail.com>
Tue, 14 May 2013 14:17:25 +0000 (22:17 +0800)
committerCheng Zhao <zcbenz@gmail.com>
Tue, 14 May 2013 14:17:25 +0000 (22:17 +0800)
browser/api/lib/menu.coffee

index 0fadb0b..2d753da 100644 (file)
@@ -10,6 +10,14 @@ Menu::popup = (window) ->
 
   popup.call this, window
 
+insertSubMenu = Menu::insertSubMenu
+Menu::insertSubMenu = (index, command_id, label, submenu) ->
+  throw new TypeError('Invalid menu') unless submenu?.constructor is Menu
+
+  @menus = [] unless Array.isArray @menus
+  @menus.push submenu # prevent submenu from getting destroyed
+  insertSubMenu.apply this, arguments
+
 Menu::appendItem = (args...) -> @insertItem -1, args...
 Menu::appendCheckItem = (args...) -> @insertCheckItem -1, args...
 Menu::appendRadioItem = (args...) -> @insertRadioItem -1, args...