diff --git a/atom/browser/default_app/default_app.js b/atom/browser/default_app/default_app.js index c79d544694fd..0e1b64d29015 100644 --- a/atom/browser/default_app/default_app.js +++ b/atom/browser/default_app/default_app.js @@ -34,6 +34,13 @@ app.on('ready', function() { { type: 'separator' }, + { + label: 'Services', + submenu: [] + }, + { + type: 'separator' + }, { label: 'Hide Atom Shell', accelerator: 'Command+H', diff --git a/atom/browser/ui/cocoa/atom_menu_controller.mm b/atom/browser/ui/cocoa/atom_menu_controller.mm index 05e4b4cc41d7..e0f22e3ba965 100644 --- a/atom/browser/ui/cocoa/atom_menu_controller.mm +++ b/atom/browser/ui/cocoa/atom_menu_controller.mm @@ -159,6 +159,9 @@ int EventFlagsFromNSEvent(NSEvent* event) { [NSApp setWindowsMenu:submenu]; else if ([[item title] isEqualToString:@"Help"]) [NSApp setHelpMenu:submenu]; + if ([[item title] isEqualToString:@"Services"] && + [submenu numberOfItems] == 0) + [NSApp setServicesMenu:submenu]; } else { // The MenuModel works on indexes so we can't just set the command id as the // tag like we do in other menus. Also set the represented object to be