Add fullscreen buttons to file viewer and filesystem

This commit is contained in:
2024-04-11 19:33:26 +02:00
parent 5bc24d4a04
commit 5f6cc3f90f
3 changed files with 62 additions and 2 deletions

View File

@@ -31,10 +31,12 @@ let file = file_struct
let list = list_struct
let is_list = false
let list_downloadable = false
let file_viewer
let file_preview
let list_navigator
let sharebar
let sharebar_visible = false
let fullscreen = false
let toggle_sharebar = () => {
if (navigator.share) {
let name = file.name
@@ -221,6 +223,20 @@ const toggle_gallery = () => {
}
}
const toggle_fullscreen = () => {
if (fullscreen || document.fullscreenElement) {
try {
document.exitFullscreen()
} catch (err) {
console.debug("Failed to exit fullscreen", err)
}
fullscreen = false
} else {
file_viewer.requestFullscreen()
fullscreen = true
}
}
// Premium page customizations. In the gallery view we will use the
// customizations for the first file in the list, else we simply use the
// selected file. In most cases they are all the same so the user won't notice
@@ -365,7 +381,7 @@ const keyboard_event = evt => {
<svelte:window on:keydown={keyboard_event} on:hashchange={hash_change}/>
<div class="file_viewer">
<div class="file_viewer" bind:this={file_viewer}>
<div class="headerbar">
{#if !disable_menu}
<button
@@ -458,6 +474,19 @@ const keyboard_event = evt => {
<span>QR code</span>
</button>
<button
class="toolbar_button"
on:click={toggle_fullscreen}
class:button_highlight={fullscreen}
title="Open page in full screen mode">
{#if fullscreen}
<i class="icon">fullscreen_exit</i>
{:else}
<i class="icon">fullscreen</i>
{/if}
<span>Fullscreen</span>
</button>
{#if view === "file"}
<button
class="toolbar_button"