From 26ac86c95c781fffed4b2714818016de8f986daf Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 7 Dec 2015 09:28:48 -0800 Subject: [PATCH] Convert submenu when non-Menu is passed into MenuItem ctor --- atom/browser/api/lib/menu-item.coffee | 4 +++- atom/browser/api/lib/menu.coffee | 1 - 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/atom/browser/api/lib/menu-item.coffee b/atom/browser/api/lib/menu-item.coffee index 57beb6f..737f9c0 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 26e2dc2..eac6a60 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 -- 2.7.4