diff options
| author | Paul Buetow <paul@buetow.org> | 2026-05-02 23:18:16 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-05-02 23:18:16 +0300 |
| commit | 92a59298ac32b4ee6e4f24e6c93307eaa152cd27 (patch) | |
| tree | 6788f2603caa45ca3cc67d8ed143f03f4d54cfee /web/js/detach.js | |
| parent | 0482a98c538cbe9ca32b4775bd897b9c728cf686 (diff) | |
refine playback navigation and player modes
Diffstat (limited to 'web/js/detach.js')
| -rw-r--r-- | web/js/detach.js | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/web/js/detach.js b/web/js/detach.js index d255b2e..0c2d2aa 100644 --- a/web/js/detach.js +++ b/web/js/detach.js @@ -43,6 +43,17 @@ document.addEventListener('keydown', (ev) => { const editing = tag === 'INPUT' || tag === 'TEXTAREA' || ev.target?.isContentEditable; if (editing || ev.ctrlKey || ev.metaKey || ev.altKey) return; + if (ev.shiftKey && ev.code === 'KeyN') { + ev.preventDefault(); + post({ type: 'detach-next', play: currentState().playing }); + return; + } + if (ev.shiftKey && ev.code === 'KeyP') { + ev.preventDefault(); + post({ type: 'detach-prev', play: currentState().playing }); + return; + } + if (ev.key === ' ' || ev.code === 'Space') { ev.preventDefault(); togglePlayback(); @@ -55,6 +66,15 @@ document.addEventListener('keydown', (ev) => { } else if (ev.key === 'ArrowRight' || ev.key === 'l') { ev.preventDefault(); seekRelative(ev.repeat ? 15 : 5); + } else if (ev.key === 'p') { + ev.preventDefault(); + togglePlayback(); + } else if (ev.key === 'N') { + ev.preventDefault(); + post({ type: 'detach-next', play: currentState().playing }); + } else if (ev.key === 'P') { + ev.preventDefault(); + post({ type: 'detach-prev', play: currentState().playing }); } }); |
