Skip to content

Commit 4249dee

Browse files
Fix fullscreen toggle errors and state handling (#5275)
* Fix fullscreen toggle errors and state handling * fixed Indentation * Update index.html remove unneeded comments --------- Co-authored-by: Walter Bender <walter.bender@gmail.com>
1 parent cec22a9 commit 4249dee

File tree

1 file changed

+35
-23
lines changed

1 file changed

+35
-23
lines changed

index.html

Lines changed: 35 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -737,13 +737,12 @@
737737

738738
<script>
739739
var elem = document.documentElement;
740+
740741
function openFullscreen() {
741742
if (elem.requestFullscreen) {
742743
elem.requestFullscreen();
743-
// For safari browser
744744
} else if (elem.webkitRequestFullscreen) {
745745
elem.webkitRequestFullscreen();
746-
// For IE(supported above 10)
747746
} else if (elem.msRequestFullscreen) {
748747
elem.msRequestFullscreen();
749748
} else if (elem.mozRequestFullscreen) {
@@ -754,41 +753,54 @@
754753
function closeFullscreen() {
755754
if (document.exitFullscreen) {
756755
document.exitFullscreen();
757-
} else if (document.webkitExitFullscreen) { /* Safari */
756+
} else if (document.webkitExitFullscreen) {
758757
document.webkitExitFullscreen();
759-
} else if (document.msExitFullscreen) { /* IE11 */
758+
} else if (document.msExitFullscreen) {
760759
document.msExitFullscreen();
761-
} else if (document.mozExitFullscreen) { /* IE11 */
760+
} else if (document.mozExitFullscreen) {
762761
document.mozExitFullscreen();
763762
}
764763
}
765-
var count = 0;
764+
766765
function setIcon() {
767-
var property = document.getElementById(FullScreen);
768766
var iconCode = document.querySelector('#FullScrIcon');
769-
//Calling full Screen
770-
if (count == 0) {
767+
// Determine fullscreen state using the browser fullscreen API
768+
// instead of relying on a manual counter. This keeps the icon
769+
// in sync when fullscreen is exited via ESC or browser controls.
770+
var isFullscreen =
771+
document.fullscreenElement ||
772+
document.webkitFullscreenElement ||
773+
document.mozFullScreenElement ||
774+
document.msFullscreenElement;
775+
776+
if (!isFullscreen) {
771777
openFullscreen();
772-
iconCode.textContent = '\ue5d1';
773-
count = 1;
774-
}
775-
//Closing full Screen
776-
else {
778+
iconCode.textContent = '\ue5d1'; // fullscreen_exit icon
779+
} else {
777780
closeFullscreen();
778-
iconCode.textContent = '\ue5d0';
779-
count = 0;
781+
iconCode.textContent = '\ue5d0'; // fullscreen icon
780782
}
781783
}
782-
document.addEventListener('fullscreenchange', handleFullscreenChange);
783-
document.addEventListener('webkitfullscreenchange', handleFullscreenChange);
784-
document.addEventListener('mozfullscreenchange', handleFullscreenChange);
785-
document.addEventListener('MSFullscreenChange', handleFullscreenChange);
786784

787785
function handleFullscreenChange() {
788786
var iconCode = document.querySelector('#FullScrIcon');
789-
count = document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement ? 1 : 0;
790-
iconCode.textContent = count ? '\ue5d1' : '\ue5d0';
787+
// Update fullscreen icon based on actual fullscreen state.
788+
// This removes the need for a separate state variable and
789+
// prevents incorrect icon state when fullscreen is toggled
790+
// outside the button (e.g., ESC key).
791+
var isFullscreen =
792+
document.fullscreenElement ||
793+
document.webkitFullscreenElement ||
794+
document.mozFullScreenElement ||
795+
document.msFullscreenElement;
796+
797+
iconCode.textContent = isFullscreen ? '\ue5d1' : '\ue5d0';
791798
}
799+
800+
document.addEventListener('fullscreenchange', handleFullscreenChange);
801+
document.addEventListener('webkitfullscreenchange', handleFullscreenChange);
802+
document.addEventListener('mozfullscreenchange', handleFullscreenChange);
803+
document.addEventListener('MSFullscreenChange', handleFullscreenChange);
792804
</script>
793805

794806
<script>
@@ -866,4 +878,4 @@
866878

867879
</body>
868880

869-
</html>
881+
</html>

0 commit comments

Comments
 (0)