diff --git a/src/common/Shortcuts/Shortcuts.tsx b/src/common/Shortcuts/Shortcuts.tsx index 348471484..fd558f7d6 100644 --- a/src/common/Shortcuts/Shortcuts.tsx +++ b/src/common/Shortcuts/Shortcuts.tsx @@ -25,7 +25,7 @@ const ShortcutsProvider = ({ children, onShortcut }: Props) => { const listeners = useRef>>(new Map()); const lastRepeatTime = useRef>(new Map()); - const onKeyDown = useCallback(({ ctrlKey, shiftKey, code, key, repeat }: KeyboardEvent) => { + const onKeyDown = useCallback(({ ctrlKey, shiftKey, altKey, metaKey, code, key, repeat }: KeyboardEvent) => { if (repeat) { const now = Date.now(); const last = lastRepeatTime.current.get(code) ?? 0; @@ -34,8 +34,10 @@ const ShortcutsProvider = ({ children, onShortcut }: Props) => { } SHORTCUTS.forEach(({ name, combos }) => combos.forEach((keys) => { - const modifers = (keys.includes('Ctrl') ? ctrlKey : true) - && (keys.includes('Shift') ? shiftKey : true); + const modifers = (keys.includes('Ctrl') === ctrlKey) + && (keys.includes('Shift') === shiftKey) + && !altKey + && !metaKey; if (modifers && (keys.includes(code) || keys.includes(key.toUpperCase()))) { const combo = combos.indexOf(keys); diff --git a/src/routes/Player/Player.js b/src/routes/Player/Player.js index 81bc62d2c..7a3bd0f12 100644 --- a/src/routes/Player/Player.js +++ b/src/routes/Player/Player.js @@ -658,7 +658,7 @@ const Player = ({ urlParams, queryParams }) => { const onKeyDown = (e) => { if (e.code !== 'Space' || e.repeat) return; - if (menusOpen) return; + if (menusOpen || e.ctrlKey || e.metaKey || e.altKey) return; longPress.current = false; @@ -670,6 +670,7 @@ const Player = ({ urlParams, queryParams }) => { const onKeyUp = (e) => { if (e.code !== 'Space' && e.code !== 'ArrowRight' && e.code !== 'ArrowLeft') return; + if (e.ctrlKey || e.metaKey || e.altKey) return; if (e.code === 'ArrowRight' || e.code === 'ArrowLeft') { setSeeking(false);