Merge pull request #3715 from atom/do-not-edit-menu-template

Do not modify the specified menu template
This commit is contained in:
Cheng Zhao 2015-12-09 12:13:07 +08:00
commit 8aee0f52e9
4 changed files with 15 additions and 4 deletions

View file

@ -26,6 +26,8 @@ class MenuItem
{click, @selector, @type, @role, @label, @sublabel, @accelerator, @icon, @enabled, @visible, @checked, @submenu} = options
if @submenu? and @submenu.constructor isnt Menu
@submenu = Menu.buildFromTemplate @submenu
@type = 'submenu' if not @type? and @submenu?
throw new Error('Invalid submenu') if @type is 'submenu' and @submenu?.constructor isnt Menu

View file

@ -169,9 +169,8 @@ 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]?
menuItem[key] ?= value for key, value of item
menu.append menuItem
menu