Skip to content

Commit 1dcdada

Browse files
authored
use event.key for search shortcut (#1525)
* use event.key for search shortcut * suggestions from review * caps lock
1 parent f8847eb commit 1dcdada

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

src/pydata_sphinx_theme/assets/scripts/pydata-sphinx-theme.js

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -236,12 +236,22 @@ var addEventListenerForSearchKeyboard = () => {
236236
(event) => {
237237
let input = findSearchInput();
238238
// toggle on Ctrl+k or ⌘+k
239-
if ((event.ctrlKey || event.metaKey) && event.code == "KeyK") {
239+
if (
240+
// Ignore if shift or alt are pressed
241+
!event.shiftKey &&
242+
!event.altKey &&
243+
// On Mac use ⌘, all other OS use Ctrl
244+
(isMac
245+
? event.metaKey && !event.ctrlKey
246+
: !event.metaKey && event.ctrlKey) &&
247+
// Case-insensitive so the shortcut still works with caps lock
248+
/k/i.test(event.key)
249+
) {
240250
event.preventDefault();
241251
toggleSearchField();
242252
}
243253
// also allow Escape key to hide (but not show) the dynamic search field
244-
else if (document.activeElement === input && event.code == "Escape") {
254+
else if (document.activeElement === input && /Escape/i.test(event.key)) {
245255
toggleSearchField();
246256
}
247257
},

0 commit comments

Comments
 (0)