if ($this.fluidbook.nav.menuIsOpen) {
$this.fluidbook.nav.closeMenu();
}
- if (screenfull.isFullscreen) {
- screenfull.exit();
+ if ($this.fluidbook.support.isFullscreen()) {
+ document.exitFullscreen();
}
});
this.keyShortcut('tab,shift+tab', function (e, handler) {
if (this.fluidbook.settings.fullscreen) {
this.keyShortcut('f11', function () {
- screenfull.toggle();
+ $this.fluidbook.support.toggleFullscreen();
});
}
// Full screen toggle
$(document).on(this.fluidbook.input.clickEvent, '.icon-fullscreen', function () {
$this.closeMenu();
- screenfull.toggle();
+ $this.fluidbook.support.toggleFullscreen();
return false;
});
- // Toggle icon on fullscreen change (also handles exiting via ESC key)
- screenfull.on('change', function () {
+ document.addEventListener('fullscreenchange', function () {
resize();
// Slight delay to stop icon state flickering during fullscreen transition
setTimeout(function () {
- if (screenfull.isFullscreen) {
+ if ($this.fluidbook.support.isFullscreen()) {
$('.icon-fullscreen').addClass('active');
} else {
window.focus();
}, 1000);
window.focus();
});
-
},
openSearch: function (q, cb) {
this.screenWidth = Math.min(window.screen.availWidth, window.screen.availHeight);
this.screenHeight = Math.max(window.screen.availWidth, window.screen.availHeight);
- // See #2440
- this.fullscreen = screenfull.enabled && !this.iOS;
+ // See #2440, #7032
+ this.fullscreen = document.fullscreenEnabled !== undefined && document.fullscreenEnabled === true && (!this.iOS || this.fluidbook.settings.fullscreeniOS);
this._orientation = this.getOrientation();
this.initEvents();
}
return false;
- }
+ },
+
+ isFullscreen: function () {
+ return this.fullscreen && document.fullscreenElement && document.exitFullscreen;
+ },
+
+ toggleFullscreen: function () {
+ if (this.isFullscreen()) {
+ this.exitFullscreen();
+ } else {
+ this.requestFullscreen();
+ }
+ },
+
+ requestFullscreen: function () {
+ document.documentElement.requestFullscreen();
+ },
+
+ exitFullscreen: function () {
+ document.exitFullscreen();
+ },
}
var active = this.isWidgetModeActive();
if (active) {
if (this.action === 'fullscreen') {
- screenfull.toggle();
+ $this.fluidbook.support.requestFullscreen();
} else if (this.action === 'tab') {
window.open(window.location.toString().replace("widget=1", "widget=0"), '_blank');
}
},
isWidgetModeActive: function () {
- return this.featureEnabled && !screenfull.isFullscreen;
+ return this.featureEnabled && !this.fluidbook.support.isFullscreen();
}
}
\ No newline at end of file
getClickName: function (id) {
if (id === 'fullscreen') {
- if (screenfull.isFullscreen) {
+ if (this.fluidbook.support.isFullscreen()) {
return 'reduire_ecran';
} else {
return 'plein_ecran';
+++ /dev/null
-/*!
-* screenfull
-* v4.2.0 - 2019-04-01
-* (c) Sindre Sorhus; MIT License
-*/
-
-!function(){"use strict";var u="undefined"!=typeof window&&void 0!==window.document?window.document:{},e="undefined"!=typeof module&&module.exports,t="undefined"!=typeof Element&&"ALLOW_KEYBOARD_INPUT"in Element,c=function(){for(var e,n=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],l=0,r=n.length,t={};l<r;l++)if((e=n[l])&&e[1]in u){for(l=0;l<e.length;l++)t[n[0][l]]=e[l];return t}return!1}(),r={change:c.fullscreenchange,error:c.fullscreenerror},n={request:function(r){return new Promise(function(e){var n=c.requestFullscreen,l=function(){this.off("change",l),e()}.bind(this);r=r||u.documentElement,/ Version\/5\.1(?:\.\d+)? Safari\//.test(navigator.userAgent)?r[n]():r[n](t?Element.ALLOW_KEYBOARD_INPUT:{}),this.on("change",l)}.bind(this))},exit:function(){return new Promise(function(e){if(this.isFullscreen){var n=function(){this.off("change",n),e()}.bind(this);u[c.exitFullscreen](),this.on("change",n)}else e()}.bind(this))},toggle:function(e){return this.isFullscreen?this.exit():this.request(e)},onchange:function(e){this.on("change",e)},onerror:function(e){this.on("error",e)},on:function(e,n){var l=r[e];l&&u.addEventListener(l,n,!1)},off:function(e,n){var l=r[e];l&&u.removeEventListener(l,n,!1)},raw:c};c?(Object.defineProperties(n,{isFullscreen:{get:function(){return Boolean(u[c.fullscreenElement])}},element:{enumerable:!0,get:function(){return u[c.fullscreenElement]}},enabled:{enumerable:!0,get:function(){return Boolean(u[c.fullscreenEnabled])}}}),e?(module.exports=n,module.exports.default=n):window.screenfull=n):e?module.exports=!1:window.screenfull=!1}();
\ No newline at end of file