aboutsummaryrefslogtreecommitdiffstats
path: root/src/js/fullscreen.js
diff options
context:
space:
mode:
authorSam Potts <sam@potts.es>2019-01-14 00:33:48 +1100
committerSam Potts <sam@potts.es>2019-01-14 00:33:48 +1100
commit6782737009bec028b393dbfb8c9897cd0c6df48f (patch)
treeb60c7a6bce9d78e9b8b3244c254fc4e234b0165c /src/js/fullscreen.js
parent6be125db8762c7ee8d29282ff5bcd08e6bcee042 (diff)
downloadplyr-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.js26
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);