summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/js/display/search-display-controller.js20
1 files changed, 18 insertions, 2 deletions
diff --git a/ext/js/display/search-display-controller.js b/ext/js/display/search-display-controller.js
index c8025d62..bf75e928 100644
--- a/ext/js/display/search-display-controller.js
+++ b/ext/js/display/search-display-controller.js
@@ -109,12 +109,15 @@ class SearchDisplayController {
}
_onKeyDown(e) {
+ const {activeElement} = document;
if (
- document.activeElement !== this._queryInput &&
+ activeElement !== this._queryInput &&
+ !this._isElementInput(activeElement) &&
!e.ctrlKey &&
!e.metaKey &&
!e.altKey &&
- e.key.length === 1
+ e.key.length === 1 &&
+ e.key !== ' '
) {
this._queryInput.focus({preventScroll: true});
}
@@ -425,4 +428,17 @@ class SearchDisplayController {
document.documentElement.dataset.searchMode = (mode !== null ? mode : '');
this._updateClipboardMonitorEnabled();
}
+
+ _isElementInput(element) {
+ if (element === null) { return false; }
+ switch (element.tagName.toLowerCase()) {
+ case 'input':
+ case 'textarea':
+ case 'button':
+ case 'select':
+ return true;
+ }
+ if (element.contentEditable) { return true; }
+ return false;
+ }
}