diff --git a/web/src/lib/components/asset-viewer/slideshow-bar.svelte b/web/src/lib/components/asset-viewer/slideshow-bar.svelte index 0f7d0a565f..a52bcbf707 100644 --- a/web/src/lib/components/asset-viewer/slideshow-bar.svelte +++ b/web/src/lib/components/asset-viewer/slideshow-bar.svelte @@ -108,6 +108,30 @@ } await modalManager.show(SlideshowSettingsModal); }; + + onMount(() => { + function exitFullscreenHandler() { + const doc = document as Document & { + webkitIsFullScreen?: boolean; + }; + + if ( + // eslint-disable-next-line tscompat/tscompat + !document.fullscreenElement && + !doc.webkitIsFullScreen + ) { + onClose(); + } + } + + document.addEventListener('fullscreenchange', exitFullscreenHandler); + document.addEventListener('webkitfullscreenchange', exitFullscreenHandler); + + return () => { + document.removeEventListener('fullscreenchange', exitFullscreenHandler); + document.removeEventListener('webkitfullscreenchange', exitFullscreenHandler); + }; + });