OS X: Make controls use full window in fullscreen

This bug was subtle. Basically, on OS X only, we use
window.setAspectRatio() to make the player window match the video size.

But this is maintained even in fullscreen mode, which makes the window
actually not use up the fullscreen, and there are black bars above and
below the video player controls, which looks really weird.

Unset the aspect ratio in fullscreen mode, then set it again upon
leaving fullscreen mode.
This commit is contained in:
Feross Aboukhadijeh
2016-05-11 23:43:27 +02:00
parent 0b82c83d44
commit 72f917a744
3 changed files with 11 additions and 1 deletions

View File

@@ -35,6 +35,10 @@ function toggleFullScreen (flag) {
log('toggleFullScreen %s', flag)
if (windows.main && windows.main.isVisible()) {
flag = flag != null ? flag : !windows.main.isFullScreen()
if (flag) {
// Allows the window to use the full screen in fullscreen mode (OS X).
windows.main.setAspectRatio(0)
}
windows.main.setFullScreen(flag)
}
}

View File

@@ -441,6 +441,10 @@ function setupIpc () {
ipcRenderer.on('fullscreenChanged', function (e, isFullScreen) {
state.window.isFullScreen = isFullScreen
if (!isFullScreen) {
// Aspect ratio gets reset in fullscreen mode, so restore it (OS X)
ipcRenderer.send('setAspectRatio', state.playing.aspectRatio)
}
update()
})
@@ -1079,6 +1083,7 @@ function setDimensions (dimensions) {
ipcRenderer.send('setAspectRatio', aspectRatio)
ipcRenderer.send('setBounds', {x: null, y: null, width, height})
state.playing.aspectRatio = aspectRatio
}
function restoreBounds () {

View File

@@ -77,7 +77,8 @@ function getDefaultPlayState () {
subtitles: {
tracks: [], /* subtitles file (Buffer) */
enabled: false
}
},
aspectRatio: 0 /* aspect ratio of the video */
}
}