Playback menu: Add "Play/Pause" item

The goal here is to remove shortcut handling from the renderer and
unify it all in menu.js and shortcuts.ks (for alternate shortcuts).

I would rather name it "Play" and change to "Pause" when video is
playing, but Electron doesn't support this (yet).
This commit is contained in:
Feross Aboukhadijeh
2016-05-11 20:18:27 +02:00
parent 3d6da99e8e
commit 1deab08d38
3 changed files with 42 additions and 22 deletions

View File

@@ -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({

View File

@@ -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 () {

View File

@@ -1155,8 +1155,6 @@ function onKeyDown (e) {
} else {
dispatch('back')
}
} else if (e.which === 32) { /* spacebar pauses or plays the video */
dispatch('playPause')
}
}