diff --git a/atom/browser/api/lib/menu-item.coffee b/atom/browser/api/lib/menu-item.coffee index 57beb6ffda..737f9c000d 100644 --- a/atom/browser/api/lib/menu-item.coffee +++ b/atom/browser/api/lib/menu-item.coffee @@ -24,8 +24,10 @@ class MenuItem constructor: (options) -> {Menu} = require 'electron' - {click, @selector, @type, @role, @label, @sublabel, @accelerator, @icon, @enabled, @visible, @checked, @submenu} = options + {click, @selector, @type, @role, @label, @sublabel, @accelerator, @icon, @enabled, @visible, @checked} = options + if options.submenu? and options.submenu.constructor isnt Menu + @submenu = Menu.buildFromTemplate options.submenu @type = 'submenu' if not @type? and @submenu? throw new Error('Invalid submenu') if @type is 'submenu' and @submenu?.constructor isnt Menu diff --git a/atom/browser/api/lib/menu.coffee b/atom/browser/api/lib/menu.coffee index 26e2dc2335..eac6a607fd 100644 --- a/atom/browser/api/lib/menu.coffee +++ b/atom/browser/api/lib/menu.coffee @@ -169,7 +169,6 @@ Menu.buildFromTemplate = (template) -> for item in positionedTemplate throw new TypeError('Invalid template for MenuItem') unless typeof item is 'object' - item.submenu = Menu.buildFromTemplate item.submenu if item.submenu? menuItem = new MenuItem(item) menuItem[key] = value for key, value of item when not menuItem[key]? menu.append menuItem