From 1a6f0bb145f00ec2a37b4002ed8d1d4e1d3481a7 Mon Sep 17 00:00:00 2001 From: Dhruv-Sharma29 <237243628+Dhruv-Sharma29@users.noreply.github.com> Date: Sat, 29 Aug 2026 18:46:26 +0530 Subject: [PATCH] fix: keyboard shortcuts in packaged app --- frontend/src/app/page.tsx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/page.tsx b/frontend/src/app/page.tsx index fb16e8d..48b064f 100644 --- a/frontend/src/app/page.tsx +++ b/frontend/src/app/page.tsx @@ -419,6 +419,11 @@ export default function HomePage() { useEffect(() => { const onKeyDown = (event: KeyboardEvent) => { + // Tauri's packaged WebView and Monaco can handle bubbling key events + // before they reach this listener. Capture the event so app shortcuts + // remain available regardless of which editor element has focus. + // Never intercept keys while an IME composition is in progress. + if (event.isComposing) return; const editableTarget = isEditableTarget(event.target); const isMonacoTarget = event.target instanceof HTMLElement && Boolean(event.target.closest(".monaco-editor")); @@ -434,8 +439,8 @@ export default function HomePage() { } }; - window.addEventListener("keydown", onKeyDown); - return () => window.removeEventListener("keydown", onKeyDown); + window.addEventListener("keydown", onKeyDown, true); + return () => window.removeEventListener("keydown", onKeyDown, true); }, [actions, shortcuts]); const handleAIApplyAction = useCallback(