diff options
author | Sam Potts <sam@potts.es> | 2019-01-14 00:33:48 +1100 |
---|---|---|
committer | Sam Potts <sam@potts.es> | 2019-01-14 00:33:48 +1100 |
commit | 6782737009bec028b393dbfb8c9897cd0c6df48f (patch) | |
tree | b60c7a6bce9d78e9b8b3244c254fc4e234b0165c /src/js/fullscreen.js | |
parent | 6be125db8762c7ee8d29282ff5bcd08e6bcee042 (diff) | |
download | plyr-6782737009bec028b393dbfb8c9897cd0c6df48f.tar.lz plyr-6782737009bec028b393dbfb8c9897cd0c6df48f.tar.xz plyr-6782737009bec028b393dbfb8c9897cd0c6df48f.zip |
Fullscreen fixes
Diffstat (limited to 'src/js/fullscreen.js')
-rw-r--r-- | src/js/fullscreen.js | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/src/js/fullscreen.js b/src/js/fullscreen.js index 9c21b82a..c86bf877 100644 --- a/src/js/fullscreen.js +++ b/src/js/fullscreen.js @@ -94,6 +94,9 @@ class Fullscreen { // Scroll position this.scrollPosition = { x: 0, y: 0 }; + // Force the use of 'full window/browser' rather than fullscreen + this.forceFallback = player.config.fullscreen.fallback === 'force'; + // Register event listeners // Handle event (incase user presses escape etc) on.call( @@ -130,6 +133,11 @@ class Fullscreen { ); } + // If we're actually using native + get usingNative() { + return Fullscreen.native && !this.forceFallback; + } + // Get the prefix for handlers static get prefix() { // No prefix @@ -174,7 +182,7 @@ class Fullscreen { } // Fallback using classname - if (!Fullscreen.native) { + if (!Fullscreen.native || this.forceFallback) { return hasClass(this.target, this.player.config.classNames.fullscreen.fallback); } @@ -193,7 +201,17 @@ class Fullscreen { // Update UI update() { if (this.enabled) { - this.player.debug.log(`${Fullscreen.native ? 'Native' : 'Fallback'} fullscreen enabled`); + let mode; + + if (this.forceFallback) { + mode = 'Fallback (forced)'; + } else if (Fullscreen.native) { + mode = 'Native'; + } else { + mode = 'Fallback'; + } + + this.player.debug.log(`${mode} fullscreen enabled`); } else { this.player.debug.log('Fullscreen not supported and fallback disabled'); } @@ -211,7 +229,7 @@ class Fullscreen { // iOS native fullscreen doesn't need the request step if (browser.isIos && this.player.config.fullscreen.iosNative) { this.target.webkitEnterFullscreen(); - } else if (!Fullscreen.native) { + } else if (!Fullscreen.native || this.forceFallback) { toggleFallback.call(this, true); } else if (!this.prefix) { this.target.requestFullscreen(); @@ -230,7 +248,7 @@ class Fullscreen { if (browser.isIos && this.player.config.fullscreen.iosNative) { this.target.webkitExitFullscreen(); this.player.play(); - } else if (!Fullscreen.native) { + } else if (!Fullscreen.native || this.forceFallback) { toggleFallback.call(this, false); } else if (!this.prefix) { (document.cancelFullScreen || document.exitFullscreen).call(document); |