diff --git a/main/menu.js b/main/menu.js index 55fea7d3..f8054ab0 100644 --- a/main/menu.js +++ b/main/menu.js @@ -49,18 +49,6 @@ function toggleFloatOnTop (flag) { } } -function increaseVolume () { - if (windows.main) { - windows.main.send('dispatch', 'changeVolume', 0.1) - } -} - -function decreaseVolume () { - if (windows.main) { - windows.main.send('dispatch', 'changeVolume', -0.1) - } -} - function toggleDevTools () { log('toggleDevTools') if (windows.main) { @@ -73,6 +61,24 @@ function showWebTorrentWindow () { windows.webtorrent.webContents.openDevTools({ detach: true }) } +function playPause () { + if (windows.main) { + windows.main.send('dispatch', 'playPause') + } +} + +function increaseVolume () { + if (windows.main) { + windows.main.send('dispatch', 'changeVolume', 0.1) + } +} + +function decreaseVolume () { + if (windows.main) { + windows.main.send('dispatch', 'changeVolume', -0.1) + } +} + function onWindowShow () { log('onWindowShow') getMenuItem('Full Screen').enabled = true @@ -86,11 +92,15 @@ function onWindowHide () { } function onPlayerOpen () { + log('onPlayerOpen') + getMenuItem('Play/Pause').enabled = true getMenuItem('Increase Volume').enabled = true getMenuItem('Decrease Volume').enabled = true } function onPlayerClose () { + log('onPlayerClose') + getMenuItem('Play/Pause').enabled = false getMenuItem('Increase Volume').enabled = false getMenuItem('Decrease Volume').enabled = false } @@ -182,7 +192,9 @@ function getAppMenuTemplate () { type: 'separator' }, { - label: process.platform === 'windows' ? 'Close' : 'Close Window', + label: process.platform === 'windows' + ? 'Close' + : 'Close Window', accelerator: 'CmdOrCtrl+W', role: 'close' } @@ -256,6 +268,15 @@ function getAppMenuTemplate () { { label: 'Playback', submenu: [ + { + label: 'Play/Pause', + accelerator: 'CmdOrCtrl+P', + click: playPause, + enabled: false + }, + { + type: 'separator' + }, { label: 'Increase Volume', accelerator: 'CmdOrCtrl+Up', @@ -378,7 +399,8 @@ function getAppMenuTemplate () { } ) } - // Add "File > Quit" menu item for Linux distros where the system tray is broken + // Add "File > Quit" menu item so Linux distros where the system tray icon is missing + // will have a way to quit the app. if (process.platform === 'linux') { // File menu (Linux) template[0].push({ diff --git a/main/shortcuts.js b/main/shortcuts.js index 1ff8c127..552ce5e0 100644 --- a/main/shortcuts.js +++ b/main/shortcuts.js @@ -13,17 +13,17 @@ var menu = require('./menu') var windows = require('./windows') function init () { - // ⌘+Shift+F is an alternative fullscreen shortcut to the ones defined in menu.js. - // Electron does not support multiple accelerators for a single menu item, so this - // is registered separately here. + // Register alternate shortcuts here. Most shortcuts are registered in menu,js, but Electron does not support multiple shortcuts for a single menu item. localShortcut.register('CmdOrCtrl+Shift+F', menu.toggleFullScreen) + localShortcut.register('Space', () => windows.main.send('dispatch', 'playPause')) } function onPlayerOpen () { // Register special "media key" for play/pause, available on some keyboards - globalShortcut.register('MediaPlayPause', function () { - windows.main.send('dispatch', 'playPause') - }) + globalShortcut.register( + 'MediaPlayPause', + () => windows.main.send('dispatch', 'playPause') + ) } function onPlayerClose () { diff --git a/renderer/index.js b/renderer/index.js index 67dfae14..16cb6a3a 100644 --- a/renderer/index.js +++ b/renderer/index.js @@ -1155,8 +1155,6 @@ function onKeyDown (e) { } else { dispatch('back') } - } else if (e.which === 32) { /* spacebar pauses or plays the video */ - dispatch('playPause') } }