From 59bb2f27a5512397fc000a77fa04c7773f7e5bd9 Mon Sep 17 00:00:00 2001 From: Kay Simons Date: Tue, 14 Sep 2021 20:27:02 +0200 Subject: [PATCH] fix: implement forced fullscreen hack for webos --- src/controllers/playback/video/index.js | 2 +- src/plugins/htmlVideoPlayer/plugin.js | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/controllers/playback/video/index.js b/src/controllers/playback/video/index.js index c82ee4fb15..fa8603f308 100644 --- a/src/controllers/playback/video/index.js +++ b/src/controllers/playback/video/index.js @@ -403,7 +403,7 @@ import { appRouter } from '../../../components/appRouter'; } function onFullscreenChanged() { - if (!playbackManager.isFullscreen(currentPlayer)) { + if (currentPlayer.forcedFullscreen && !playbackManager.isFullscreen(currentPlayer)) { appRouter.back(); return; } diff --git a/src/plugins/htmlVideoPlayer/plugin.js b/src/plugins/htmlVideoPlayer/plugin.js index 0f1e48a8bd..4724fcba0f 100644 --- a/src/plugins/htmlVideoPlayer/plugin.js +++ b/src/plugins/htmlVideoPlayer/plugin.js @@ -1361,25 +1361,29 @@ function tryRemoveElement(elem) { this.#videoDialog = dlg; this.#mediaElement = videoElement; + delete this.forcedFullscreen; + if (options.fullscreen) { // At this point, we must hide the scrollbar placeholder, so it's not being displayed while the item is being loaded document.body.classList.add('hide-scroll'); - } - if (options.fullscreen) { + // Enter fullscreen in the webOS browser to hide the top bar if (!window.NativeShell && browser.web0s && Screenfull.isEnabled) { - Screenfull.request(); + Screenfull.request().then(() => { + this.forcedFullscreen = true; + }); return videoElement; } + // don't animate on smart tv's, too slow if (!browser.slow && browser.supportsCssAnimation()) { return zoomIn(dlg).then(function () { return videoElement; }); } - } + return videoElement; }); } else {