Skip to content

Commit 9fd98bb

Browse files
authored
refactor: no longer require submenu for services menuitem (electron#15656)
1 parent 025aa49 commit 9fd98bb

File tree

3 files changed

+13
-6
lines changed

3 files changed

+13
-6
lines changed

atom/browser/ui/cocoa/atom_menu_controller.mm

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,17 @@ - (void)addItemToMenu:(NSMenu*)menu
208208

209209
base::string16 role = model->GetRoleAt(index);
210210
atom::AtomMenuModel::ItemType type = model->GetTypeAt(index);
211-
if (type == atom::AtomMenuModel::TYPE_SUBMENU) {
211+
212+
if (role == base::ASCIIToUTF16("services")) {
213+
base::string16 title = base::ASCIIToUTF16("Services");
214+
NSString* label = l10n_util::FixUpWindowsStyleLabel(title);
215+
216+
[item setTarget:nil];
217+
[item setAction:nil];
218+
NSMenu* submenu = [[NSMenu alloc] initWithTitle:label];
219+
[item setSubmenu:submenu];
220+
[NSApp setServicesMenu:submenu];
221+
} else if (type == atom::AtomMenuModel::TYPE_SUBMENU) {
212222
// Recursively build a submenu from the sub-model at this index.
213223
[item setTarget:nil];
214224
[item setAction:nil];
@@ -223,8 +233,6 @@ - (void)addItemToMenu:(NSMenu*)menu
223233
[NSApp setWindowsMenu:submenu];
224234
else if (role == base::ASCIIToUTF16("help"))
225235
[NSApp setHelpMenu:submenu];
226-
else if (role == base::ASCIIToUTF16("services"))
227-
[NSApp setServicesMenu:submenu];
228236
else if (role == base::ASCIIToUTF16("recentdocuments"))
229237
[self replaceSubmenuShowingRecentDocuments:item];
230238
} else {

default_app/menu.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,8 +123,7 @@ const setDefaultApplicationMenu = () => {
123123
type: 'separator'
124124
},
125125
{
126-
role: 'services',
127-
submenu: []
126+
role: 'services'
128127
},
129128
{
130129
type: 'separator'

docs/api/menu.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ if (process.platform === 'darwin') {
210210
submenu: [
211211
{ role: 'about' },
212212
{ type: 'separator' },
213-
{ role: 'services', submenu: [] },
213+
{ role: 'services' },
214214
{ type: 'separator' },
215215
{ role: 'hide' },
216216
{ role: 'hideothers' },

0 commit comments

Comments
 (0)