From 53fbc24ac547fce2db8a08a683c4402284b537d8 Mon Sep 17 00:00:00 2001 From: Claus Vium Date: Sun, 17 Feb 2019 23:13:42 +0100 Subject: [PATCH 1/2] Exit fullscreen automatically when video playback stops --- .../emby-webcomponents/htmlvideoplayer/plugin.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/bower_components/emby-webcomponents/htmlvideoplayer/plugin.js b/src/bower_components/emby-webcomponents/htmlvideoplayer/plugin.js index 19b075b622..e723790583 100644 --- a/src/bower_components/emby-webcomponents/htmlvideoplayer/plugin.js +++ b/src/bower_components/emby-webcomponents/htmlvideoplayer/plugin.js @@ -1,4 +1,4 @@ -define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackManager', 'appRouter', 'appSettings', 'connectionManager', 'htmlMediaHelper', 'itemHelper'], function (browser, require, events, appHost, loading, dom, playbackManager, appRouter, appSettings, connectionManager, htmlMediaHelper, itemHelper) { +define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackManager', 'appRouter', 'appSettings', 'connectionManager', 'htmlMediaHelper', 'itemHelper', 'fullscreenManager'], function (browser, require, events, appHost, loading, dom, playbackManager, appRouter, appSettings, connectionManager, htmlMediaHelper, itemHelper, fullscreenManager) { "use strict"; var mediaManager; @@ -692,6 +692,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa dlg.parentNode.removeChild(dlg); } + fullscreenManager.exitFullscreen(); }; function onEnded() { From 9a7ede5536700c711884386af60dda22dae302b3 Mon Sep 17 00:00:00 2001 From: Claus Vium Date: Sun, 17 Feb 2019 23:29:31 +0100 Subject: [PATCH 2/2] Add fullscreen check to avoid errors in Chrome --- .../fullscreen/fullscreenmanager.js | 17 +++++++++++++---- .../htmlvideoplayer/plugin.js | 1 + 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/bower_components/emby-webcomponents/fullscreen/fullscreenmanager.js b/src/bower_components/emby-webcomponents/fullscreen/fullscreenmanager.js index d39d8fd3b6..5773e57d07 100644 --- a/src/bower_components/emby-webcomponents/fullscreen/fullscreenmanager.js +++ b/src/bower_components/emby-webcomponents/fullscreen/fullscreenmanager.js @@ -29,11 +29,14 @@ define(['events', 'dom'], function (events, dom) { } if (element.webkitEnterFullscreen) { element.webkitEnterFullscreen(); - } + } }; fullscreenManager.prototype.exitFullscreen = function () { + if (!this.isFullScreen()) { + return; + } if (document.exitFullscreen) { document.exitFullscreen(); } else if (document.mozCancelFullScreen) { @@ -47,9 +50,15 @@ define(['events', 'dom'], function (events, dom) { } }; + // TODO: use screenfull.js fullscreenManager.prototype.isFullScreen = function () { - - return document.fullscreen || document.mozFullScreen || document.webkitIsFullScreen || document.msFullscreenElement ? true : false; + return document.fullscreen || + document.mozFullScreen || + document.webkitIsFullScreen || + document.msFullscreenElement || /* IE/Edge syntax */ + document.fullscreenElement || /* Standard syntax */ + document.webkitFullscreenElement || /* Chrome, Safari and Opera syntax */ + document.mozFullScreenElement; /* Firefox syntax */ }; var manager = new fullscreenManager(); @@ -71,4 +80,4 @@ define(['events', 'dom'], function (events, dom) { }); return manager; -}); \ No newline at end of file +}); diff --git a/src/bower_components/emby-webcomponents/htmlvideoplayer/plugin.js b/src/bower_components/emby-webcomponents/htmlvideoplayer/plugin.js index e723790583..d25b49163b 100644 --- a/src/bower_components/emby-webcomponents/htmlvideoplayer/plugin.js +++ b/src/bower_components/emby-webcomponents/htmlvideoplayer/plugin.js @@ -692,6 +692,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa dlg.parentNode.removeChild(dlg); } + fullscreenManager.exitFullscreen(); };