From b9e92a2528ff7cf85fb56ab4bc3b23eea4d512e2 Mon Sep 17 00:00:00 2001 From: toasted-nutbread Date: Fri, 19 Feb 2021 21:20:58 -0500 Subject: Improve key press to focus the search query input (#1424) --- ext/js/display/search-display-controller.js | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'ext/js/display/search-display-controller.js') 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; + } } -- cgit v1.2.3