From fa3cd0f5b287d84f3a6f2ab232a7f9ff9b92e135 Mon Sep 17 00:00:00 2001 From: AK <144495202+AKnassa@users.noreply.github.com> Date: Thu, 30 Apr 2026 12:23:15 -0400 Subject: [PATCH] fix(fullscreen): ignore shortcut in editable fields --- src/common/Fullscreen/FullscreenProvider.tsx | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/common/Fullscreen/FullscreenProvider.tsx b/src/common/Fullscreen/FullscreenProvider.tsx index 1c899d283..77c385013 100644 --- a/src/common/Fullscreen/FullscreenProvider.tsx +++ b/src/common/Fullscreen/FullscreenProvider.tsx @@ -10,6 +10,16 @@ type Props = { children: React.ReactNode, }; +const isTextInputFocused = () => { + const activeElement = document.activeElement; + + return activeElement instanceof HTMLElement && + (activeElement.tagName === 'INPUT' || + activeElement.tagName === 'TEXTAREA' || + activeElement.tagName === 'SELECT' || + activeElement.isContentEditable); +}; + const FullscreenProvider = ({ children }: Props) => { const shell = useShell(); const { core } = useServices(); @@ -47,7 +57,12 @@ const FullscreenProvider = ({ children }: Props) => { fullscreen ? exitFullscreen() : requestFullscreen(); }, [fullscreen, exitFullscreen, requestFullscreen]); - onShortcut('fullscreen', toggleFullscreen, [toggleFullscreen]); + const toggleFullscreenFromShortcut = useCallback(() => { + if (isTextInputFocused()) return; + toggleFullscreen(); + }, [toggleFullscreen]); + + onShortcut('fullscreen', toggleFullscreenFromShortcut, [toggleFullscreenFromShortcut]); useEffect(() => { if (!core?.active) return;