From 44ef27299a79696bb10cd2c860d0f6bae4f64fe5 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Wed, 26 Apr 2023 16:04:14 +0100 Subject: [PATCH] Update grid keyboard handling to bring invalid origin consideration to be highest precedence --- .../grid/overlays/KeyboardManager.svelte | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/packages/frontend-core/src/components/grid/overlays/KeyboardManager.svelte b/packages/frontend-core/src/components/grid/overlays/KeyboardManager.svelte index e0e842dc16..f0f56118d9 100644 --- a/packages/frontend-core/src/components/grid/overlays/KeyboardManager.svelte +++ b/packages/frontend-core/src/components/grid/overlays/KeyboardManager.svelte @@ -15,8 +15,22 @@ selectedRows, } = getContext("grid") + const ignoredOriginSelectors = [ + ".spectrum-Modal", + "#builder-side-panel-container", + ] + // Global key listener which intercepts all key events const handleKeyDown = e => { + // Avoid processing events sourced from certain origins + if (e.target?.closest) { + for (let selector of ignoredOriginSelectors) { + if (e.target.closest(selector)) { + return + } + } + } + // If nothing selected avoid processing further key presses if (!$focusedCellId) { if (e.key === "Tab" || e.key?.startsWith("Arrow")) { @@ -60,11 +74,6 @@ return } } - - // Avoid processing events sourced from modals - if (e.target?.closest?.(".spectrum-Modal")) { - return - } e.preventDefault() // Handle the key ourselves