fix: the keyboard shortcuts the player has always advertised
The transport buttons have said "Play (space)" and "Full screen (f)" since they were built, with nothing listening for either key. Pressing f did nothing, which is exactly what a broken fullscreen button looks like. Both now work, verified in the running app: f enters and leaves fullscreen, space plays and pauses. Space is prevented from also pressing whichever button has focus, and neither fires while typing in a field or alongside a modifier. Escape now asks to leave fullscreen before the player considers closing, so one keypress cannot drop you all the way back to the feed. The button itself was never broken: it was checked on a downloaded video, on a stream, and inside a window already in macOS fullscreen, entering and leaving each time.
This commit is contained in:
@@ -299,8 +299,9 @@ export default function Player({
|
||||
// Escape backs out, as it does everywhere else in the app.
|
||||
useEffect(() => {
|
||||
const onKey = (e: KeyboardEvent) => {
|
||||
// In fullscreen the browser already handles Escape; closing the player
|
||||
// as well would drop you all the way back to the feed.
|
||||
// In fullscreen, Escape is the transport bar's to handle: it leaves
|
||||
// fullscreen. Closing the player as well would drop you all the way back
|
||||
// to the feed in one keypress.
|
||||
if (e.key === "Escape" && !document.fullscreenElement) leave();
|
||||
// Arrow keys only when the video does not own them for seeking.
|
||||
if (e.key === "ArrowLeft" && e.shiftKey) onPrev?.();
|
||||
|
||||
Reference in New Issue
Block a user