From e97b7282ffb11bd628a26e43d72b9eab2c133ba8 Mon Sep 17 00:00:00 2001 From: Masahiko AMANO Date: Thu, 11 Jun 2026 16:04:11 +0300 Subject: [PATCH] fix(frontend): make Escape dismiss overlays before clearing selection Escape now peels one layer at a time on the files page: an open tag editor, pool picker, or delete confirm closes first, and only a second Escape drops the multi-select. Selection-exit handling moves out of SelectionBar into a single window handler on the page so precedence is deterministic rather than dependent on window-listener fire order. Co-Authored-By: Claude Opus 4.8 --- .../src/lib/components/layout/SelectionBar.svelte | 6 ------ frontend/src/routes/files/+page.svelte | 14 ++++++++++++++ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/frontend/src/lib/components/layout/SelectionBar.svelte b/frontend/src/lib/components/layout/SelectionBar.svelte index a47b181..f760109 100644 --- a/frontend/src/lib/components/layout/SelectionBar.svelte +++ b/frontend/src/lib/components/layout/SelectionBar.svelte @@ -8,14 +8,8 @@ } let { onEditTags, onAddToPool, onDelete }: Props = $props(); - - function handleKeydown(e: KeyboardEvent) { - if (e.key === 'Escape') selectionStore.exit(); - } - -