From 7d2a5c5f36be8cfc1dace6018646f979cb868956 Mon Sep 17 00:00:00 2001 From: Shelley Vohr Date: Mon, 3 Dec 2018 08:32:24 -0800 Subject: [PATCH] fix: make windowMenu role correct on MacOS --- default_app/menu.js | 27 +-------------------------- lib/browser/api/menu-item-roles.js | 14 ++++++++++---- spec/api-menu-item-spec.js | 5 ++++- 3 files changed, 15 insertions(+), 31 deletions(-) diff --git a/default_app/menu.js b/default_app/menu.js index 062bf716afc01..6dd37b2d32875 100644 --- a/default_app/menu.js +++ b/default_app/menu.js @@ -69,15 +69,7 @@ const setDefaultApplicationMenu = () => { ] }, { - role: 'window', - submenu: [ - { - role: 'minimize' - }, - { - role: 'close' - } - ] + role: 'windowMenu' }, { role: 'help', @@ -158,23 +150,6 @@ const setDefaultApplicationMenu = () => { } ] }) - template[3].submenu = [ - { - role: 'close' - }, - { - role: 'minimize' - }, - { - role: 'zoom' - }, - { - type: 'separator' - }, - { - role: 'front' - } - ] } else { template.unshift({ label: 'File', diff --git a/lib/browser/api/menu-item-roles.js b/lib/browser/api/menu-item-roles.js index 61c6226f630fa..a3075a99ffd86 100644 --- a/lib/browser/api/menu-item-roles.js +++ b/lib/browser/api/menu-item-roles.js @@ -216,17 +216,23 @@ const roles = { role: 'minimize' }, { - role: 'close' + role: 'zoom' }, - + process.platform !== 'darwin' ? { + label: 'close' + } : null, process.platform === 'darwin' ? { type: 'separator' } : null, - process.platform === 'darwin' ? { role: 'front' + } : null, + process.platform === 'darwin' ? { + type: 'separator' + } : null, + process.platform === 'darwin' ? { + role: 'window' } : null - ] } } diff --git a/spec/api-menu-item-spec.js b/spec/api-menu-item-spec.js index 04e7b08f445b1..49d0366f34137 100644 --- a/spec/api-menu-item-spec.js +++ b/spec/api-menu-item-spec.js @@ -349,11 +349,14 @@ describe('MenuItems', () => { expect(item.label).to.equal('Window') expect(item.submenu.items[0].role).to.equal('minimize') - expect(item.submenu.items[1].role).to.equal('close') + expect(item.submenu.items[1].role).to.equal('zoom') if (process.platform === 'darwin') { expect(item.submenu.items[2].type).to.equal('separator') expect(item.submenu.items[3].role).to.equal('front') + + expect(item.submenu.items[4].type).to.equal('separator') + expect(item.submenu.items[5].role).to.equal('window') } })