Skip to content

Commit 8cb1078

Browse files
authored
Merge pull request Gnathonic#249 from Gnathonic/fix/reader-hotkey-filtering
fix: Ignore reader hotkeys in text inputs and with modifier keys
2 parents 3e7dbb9 + 1c6917c commit 8cb1078

1 file changed

Lines changed: 18 additions & 0 deletions

File tree

src/lib/components/Reader/Reader.svelte

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,8 +194,26 @@
194194
}
195195
196196
function handleShortcuts(event: KeyboardEvent & { currentTarget: EventTarget & Window }) {
197+
// Ignore shortcuts when user is in a text input, editable field, or UI overlay
198+
const target = event.target as HTMLElement;
199+
if (
200+
target.tagName === 'INPUT' ||
201+
target.tagName === 'TEXTAREA' ||
202+
target.isContentEditable ||
203+
target.closest('#settings') || // Settings drawer
204+
target.closest('[data-popover]') // Page number popover and other popovers
205+
) {
206+
return;
207+
}
208+
197209
const action = event.code || event.key;
198210
211+
// For letter keys, ignore if any modifier key is pressed (e.g., Ctrl+C for copy)
212+
const isLetterKey = action.startsWith('Key');
213+
if (isLetterKey && (event.ctrlKey || event.altKey || event.metaKey)) {
214+
return;
215+
}
216+
199217
// Keys that should prevent default browser scrolling behavior
200218
const scrollKeys = [
201219
'ArrowLeft',

0 commit comments

Comments
 (0)