diff --git a/src/main/ipc.js b/src/main/ipc.js index 23d410f5..056232d2 100644 --- a/src/main/ipc.js +++ b/src/main/ipc.js @@ -58,7 +58,7 @@ function init () { */ ipc.on('onPlayerOpen', function () { - menu.setPlayerOpen(true) + menu.togglePlaybackControls(true) powerSaveBlocker.enable() shortcuts.enable() thumbar.enable() @@ -70,7 +70,7 @@ function init () { }) ipc.on('onPlayerClose', function () { - menu.setPlayerOpen(false) + menu.togglePlaybackControls(false) powerSaveBlocker.disable() shortcuts.disable() thumbar.disable() @@ -126,7 +126,12 @@ function init () { }) }) - ipc.on('openExternalPlayer', (e, ...args) => externalPlayer.spawn(...args)) + ipc.on('openExternalPlayer', (e, ...args) => { + menu.togglePlaybackControls(false) + thumbar.disable() + externalPlayer.spawn(...args) + }) + ipc.on('quitExternalPlayer', () => externalPlayer.kill()) // Capture all events diff --git a/src/main/menu.js b/src/main/menu.js index 5f512014..be594a8a 100644 --- a/src/main/menu.js +++ b/src/main/menu.js @@ -1,6 +1,6 @@ module.exports = { init, - setPlayerOpen, + togglePlaybackControls, setWindowFocus, setAllowNav, onPlayerUpdate, @@ -24,7 +24,7 @@ function init () { electron.Menu.setApplicationMenu(menu) } -function setPlayerOpen (flag) { +function togglePlaybackControls (flag) { getMenuItem('Play/Pause').enabled = flag getMenuItem('Skip Next').enabled = flag getMenuItem('Skip Previous').enabled = flag diff --git a/src/renderer/controllers/playback-controller.js b/src/renderer/controllers/playback-controller.js index bc7afe62..e88be8e1 100644 --- a/src/renderer/controllers/playback-controller.js +++ b/src/renderer/controllers/playback-controller.js @@ -87,7 +87,7 @@ module.exports = class PlaybackController { // Play next file in list (if any) nextTrack () { const state = this.state - if (Playlist.hasNext(state)) { + if (Playlist.hasNext(state) && state.playing.location !== 'external') { this.updatePlayer( state.playing.infoHash, Playlist.getNextIndex(state), false, (err) => { if (err) dispatch('error', err) @@ -99,7 +99,7 @@ module.exports = class PlaybackController { // Play previous track in list (if any) previousTrack () { const state = this.state - if (Playlist.hasPrevious(state)) { + if (Playlist.hasPrevious(state) && state.playing.location !== 'external') { this.updatePlayer( state.playing.infoHash, Playlist.getPreviousIndex(state), false, (err) => { if (err) dispatch('error', err)