diff --git a/src/browser/context-menu.coffee b/src/browser/context-menu.coffee index 1f8377637..b3a043fda 100644 --- a/src/browser/context-menu.coffee +++ b/src/browser/context-menu.coffee @@ -19,4 +19,6 @@ class ContextMenu do (item) => item.click = => global.atomApplication.sendCommandToWindow(item.command, @atomWindow, item.commandOptions) + else if item.submenu + @createClickHandlers(item.submenu) item diff --git a/src/context-menu-manager.coffee b/src/context-menu-manager.coffee index 908e9fc8a..3f7128cb1 100644 --- a/src/context-menu-manager.coffee +++ b/src/context-menu-manager.coffee @@ -34,7 +34,10 @@ class ContextMenuManager add: (name, object, {devMode}={}) -> for selector, items of object for label, command of items - @addBySelector(selector, {label, command}, {devMode}) + if (typeof command == 'object') + @addBySelector(selector, command, {devMode}) + else + @addBySelector(selector, {label, command}, {devMode}) # Registers a command to be displayed when the relevant item is right # clicked. @@ -49,6 +52,8 @@ class ContextMenuManager definitions = if devMode then @devModeDefinitions else @definitions (definitions[selector] ?= []).push(definition) + + # Returns definitions which match the element and devMode. definitionsForElement: (element, {devMode}={}) -> definitions = if devMode then @devModeDefinitions else @definitions