diff options
Diffstat (limited to 'src/static')
-rw-r--r-- | src/static/js/client/sidebar-search.js | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/static/js/client/sidebar-search.js b/src/static/js/client/sidebar-search.js index 2e350070..a5652412 100644 --- a/src/static/js/client/sidebar-search.js +++ b/src/static/js/client/sidebar-search.js @@ -72,6 +72,7 @@ export const info = { collapsedDetailsForTidiness: null, recallingRecentSearch: null, + recallingRecentSearchFromMouse: null, currentValue: null, @@ -317,6 +318,14 @@ export function mutatePageContent() { export function addPageListeners() { if (!info.searchInput) return; + info.searchInput.addEventListener('mousedown', _domEvent => { + const {state} = info; + + if (state.recallingRecentSearch) { + state.recallingRecentSearchFromMouse = true; + } + }); + info.searchInput.addEventListener('focus', _domEvent => { const {session, state} = info; @@ -328,6 +337,19 @@ export function addPageListeners() { } }); + info.searchLabel.addEventListener('click', domEvent => { + const {state} = info; + + if (state.recallingRecentSearchFromMouse) { + if (info.searchInput.selectionStart === info.searchInput.selectionEnd) { + info.searchInput.select(); + } + + state.recallingRecentSearchFromMouse = false; + return; + } + }); + info.searchInput.addEventListener('change', _domEvent => { const {state} = info; |