{
}
const fullscreen = () => {
- player.requestFullscreen()
+ if (document.fullscreenElement === null) {
+ player.requestFullscreen()
+ } else {
+ document.exitFullscreen()
+ }
}
const keypress = e => {
@@ -104,6 +108,14 @@ const keypress = e => {
fullscreen()
}
}
+const video_keydown = e => {
+ if (e.key === " ") {
+ // Prevent spacebar from pausing playback in Chromium. This conflicts
+ // with our own global key handler, causing the video to immediately
+ // pause again after unpausing.
+ e.stopPropagation()
+ }
+}
@@ -135,6 +147,7 @@ const keypress = e => {
on:pause={() => playing = false }
on:play={() => playing = true }
on:ended={() => dispatch("next", {})}
+ on:keydown={video_keydown}
>
diff --git a/svelte/src/filesystem/viewers/Video.svelte b/svelte/src/filesystem/viewers/Video.svelte
index 845969b..6bc531d 100644
--- a/svelte/src/filesystem/viewers/Video.svelte
+++ b/svelte/src/filesystem/viewers/Video.svelte
@@ -71,8 +71,22 @@ const mute = () => {
}
const fullscreen = () => {
- player.requestFullscreen()
+ if (document.fullscreenElement === null) {
+ player.requestFullscreen()
+ } else {
+ document.exitFullscreen()
+ }
}
+
+const video_keydown = e => {
+ if (e.key === " ") {
+ // Prevent spacebar from pausing playback in Chromium. This conflicts
+ // with our own global key handler, causing the video to immediately
+ // pause again after unpausing.
+ e.stopPropagation()
+ }
+}
+
@@ -101,6 +115,7 @@ const fullscreen = () => {
on:pause={() => playing = false }
on:play={() => playing = true }
on:ended={() => dispatch("open_sibling", 1)}
+ on:keydown={video_keydown}
>