diff --git a/src/lib/components/layout/SearchModal.svelte b/src/lib/components/layout/SearchModal.svelte index 5617de7c22..70942fca91 100644 --- a/src/lib/components/layout/SearchModal.svelte +++ b/src/lib/components/layout/SearchModal.svelte @@ -176,6 +176,12 @@ } const onKeyDown = (e) => { + // Ignore keydown fired while confirming an IME composition (e.g. Japanese/Chinese/Korean) + // so confirming the composition with Enter doesn't trigger search actions (#26172). + if (e.isComposing || e.keyCode === 229) { + return; + } + const searchOptions = document.getElementById('search-options-container'); if (searchOptions || !show) { return; diff --git a/src/lib/components/layout/Sidebar/SearchInput.svelte b/src/lib/components/layout/Sidebar/SearchInput.svelte index f29dc57cca..3e07a1e2d7 100644 --- a/src/lib/components/layout/Sidebar/SearchInput.svelte +++ b/src/lib/components/layout/Sidebar/SearchInput.svelte @@ -229,6 +229,12 @@ } }} on:keydown={(e) => { + // Ignore keydown fired while confirming an IME composition (e.g. Japanese/Chinese/Korean) + // so confirming the composition with Enter doesn't trigger search actions (#26172). + if (e.isComposing || e.keyCode === 229) { + return; + } + if (e.key === 'Enter') { if (filteredItems.length > 0) { const itemElement = document.getElementById(`search-item-${selectedIdx}`);