From 482046d869fe7945425d0510f85d0bc11e78720f Mon Sep 17 00:00:00 2001 From: Diego Smania Date: Wed, 28 Apr 2021 18:10:45 -0300 Subject: [PATCH 1/2] [Fullscreen Plugin]: Fix icon change when enter/exit full screen mode. --- build/js/Fullscreen.js | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/build/js/Fullscreen.js b/build/js/Fullscreen.js index 8d4624a14..0ff8770f0 100644 --- a/build/js/Fullscreen.js +++ b/build/js/Fullscreen.js @@ -19,6 +19,8 @@ const JQUERY_NO_CONFLICT = $.fn[NAME] const SELECTOR_DATA_WIDGET = '[data-widget="fullscreen"]' const SELECTOR_ICON = `${SELECTOR_DATA_WIDGET} i` +const FULLSCREEN_EVENTS = 'webkitfullscreenchange mozfullscreenchange fullscreenchange MSFullscreenChange' + const Default = { minimizeIcon: 'fa-compress-arrows-alt', maximizeIcon: 'fa-expand-arrows-alt' @@ -48,6 +50,17 @@ class Fullscreen { } } + toggleIcon() { + if (document.fullscreenElement || + document.mozFullScreenElement || + document.webkitFullscreenElement || + document.msFullscreenElement) { + $(SELECTOR_ICON).removeClass(this.options.maximizeIcon).addClass(this.options.minimizeIcon) + } else { + $(SELECTOR_ICON).removeClass(this.options.minimizeIcon).addClass(this.options.maximizeIcon) + } + } + fullscreen() { if (document.documentElement.requestFullscreen) { document.documentElement.requestFullscreen() @@ -56,8 +69,6 @@ class Fullscreen { } else if (document.documentElement.msRequestFullscreen) { document.documentElement.msRequestFullscreen() } - - $(SELECTOR_ICON).removeClass(this.options.maximizeIcon).addClass(this.options.minimizeIcon) } windowed() { @@ -68,8 +79,6 @@ class Fullscreen { } else if (document.msExitFullscreen) { document.msExitFullscreen() } - - $(SELECTOR_ICON).removeClass(this.options.minimizeIcon).addClass(this.options.maximizeIcon) } // Static @@ -86,7 +95,7 @@ class Fullscreen { $(this).data(DATA_KEY, typeof config === 'object' ? config : data) - if (typeof config === 'string' && /toggle|fullscreen|windowed/.test(config)) { + if (typeof config === 'string' && /toggle|toggleIcon|fullscreen|windowed/.test(config)) { plugin[config]() } else { plugin.init() @@ -102,6 +111,12 @@ $(document).on('click', SELECTOR_DATA_WIDGET, function () { Fullscreen._jQueryInterface.call($(this), 'toggle') }) +// Detect fullscreen events to show the right icon. + +$(document).on(FULLSCREEN_EVENTS, () => { + Fullscreen._jQueryInterface.call($(SELECTOR_DATA_WIDGET), 'toggleIcon') +}) + /** * jQuery API * ==================================================== From 7cbd3ff08e57e04a52472902783477ef1f7b9660 Mon Sep 17 00:00:00 2001 From: Daniel <50356015+danny007in@users.noreply.github.com> Date: Thu, 29 Apr 2021 14:42:15 +0530 Subject: [PATCH 2/2] Update Fullscreen.js --- build/js/Fullscreen.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/build/js/Fullscreen.js b/build/js/Fullscreen.js index 0ff8770f0..fbb2b361d 100644 --- a/build/js/Fullscreen.js +++ b/build/js/Fullscreen.js @@ -19,7 +19,7 @@ const JQUERY_NO_CONFLICT = $.fn[NAME] const SELECTOR_DATA_WIDGET = '[data-widget="fullscreen"]' const SELECTOR_ICON = `${SELECTOR_DATA_WIDGET} i` -const FULLSCREEN_EVENTS = 'webkitfullscreenchange mozfullscreenchange fullscreenchange MSFullscreenChange' +const EVENT_FULLSCREEN_CHANGE = 'webkitfullscreenchange mozfullscreenchange fullscreenchange MSFullscreenChange' const Default = { minimizeIcon: 'fa-compress-arrows-alt', @@ -111,9 +111,7 @@ $(document).on('click', SELECTOR_DATA_WIDGET, function () { Fullscreen._jQueryInterface.call($(this), 'toggle') }) -// Detect fullscreen events to show the right icon. - -$(document).on(FULLSCREEN_EVENTS, () => { +$(document).on(EVENT_FULLSCREEN_CHANGE, () => { Fullscreen._jQueryInterface.call($(SELECTOR_DATA_WIDGET), 'toggleIcon') })