Fix #176: close window on OSX

This commit is contained in:
DC
2016-03-21 03:29:54 -07:00
parent 719f0561b1
commit 34a8afa9ec
4 changed files with 16 additions and 13 deletions

View File

@@ -66,10 +66,10 @@ function setBounds (bounds, maximize) {
// Maximize or minimize, if the second argument is present
var willBeMaximized
if (maximize === true) {
if (!windows.main.isMaximized) windows.main.maximize()
if (!windows.main.isMaximized()) windows.main.maximize()
willBeMaximized = true
} else if (maximize === false) {
if (windows.main.isMaximized) windows.main.unmaximize()
if (windows.main.isMaximized()) windows.main.unmaximize()
willBeMaximized = false
} else {
willBeMaximized = windows.main.isMaximized()

View File

@@ -6,7 +6,6 @@ var windows = module.exports = {
var electron = require('electron')
var app = electron.app
var ipcMain = electron.ipcMain
var config = require('../config')
var menu = require('./menu')
@@ -44,14 +43,8 @@ function createMainWindow () {
win.on('close', function (e) {
if (process.platform === 'darwin' && !app.isQuitting) {
e.preventDefault()
// When the window is hidden, the update() loop (which uses
// requestAnimationFrame) ceases to run. We need to make sure
// the video pauses before hiding or it will continue to play.
win.send('dispatch', 'pause')
ipcMain.once('paused-video', function (e) {
win.hide()
})
win.hide()
}
})

View File

@@ -225,6 +225,12 @@ function dispatch (action, ...args) {
if (action === 'playPause') {
playPause()
}
if (action === 'play') {
playPause(false)
}
if (action === 'pause') {
playPause(true)
}
if (action === 'playbackJump') {
jumpToTime(args[0] /* seconds */)
}
@@ -234,7 +240,6 @@ function dispatch (action, ...args) {
}
if (action === 'videoPaused') {
state.video.isPaused = true
ipcRenderer.send('paused-video')
ipcRenderer.send('unblockPowerSave')
}
if (action === 'toggleFullScreen') {
@@ -251,7 +256,12 @@ function dispatch (action, ...args) {
}
}
function playPause () {
// Plays or pauses the video. If isPaused is undefined, acts as a toggle
function playPause (isPaused) {
if (isPaused === state.video.isPaused) {
return // Nothing to do
}
// Either isPaused is undefined, or it's the opposite of the current state. Toggle.
if (Cast.isCasting()) {
Cast.playPause()
}

View File

@@ -32,7 +32,7 @@ module.exports = {
video: { /* state of the video player screen */
currentTime: 0, /* seconds */
duration: 1, /* seconds */
isPaused: false,
isPaused: true,
mouseStationarySince: 0 /* Unix time in ms */
},
dock: {