From 1cb7bb6a7283cae6cdb988af4a9be4a3c0ca6fe2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Mon, 23 Dec 2024 16:28:53 -0500 Subject: [PATCH] fix: don't close search if children have focus, closes #13004 --- public/src/modules/search.js | 19 +++++++++++-------- src/views/modals/merge-topic.tpl | 4 +--- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/public/src/modules/search.js b/public/src/modules/search.js index 0d87e398f4..a4757cbd73 100644 --- a/public/src/modules/search.js +++ b/public/src/modules/search.js @@ -28,9 +28,9 @@ define('search', [ const toggleVisibility = searchFields.hasClass('hidden'); if (toggleVisibility) { - searchInput.off('blur').on('blur', function dismissSearch() { + searchFields.off('focusout').on('focusout', function dismissSearch() { setTimeout(function () { - if (!searchInput.is(':focus')) { + if (!searchFields.find(':focus').length) { searchFields.addClass('hidden'); searchButton.removeClass('hidden'); } @@ -177,30 +177,33 @@ define('search', [ doSearch(); }, 500)); - let mousedownOnResults = false; quickSearchResults.on('mousedown', '.quick-search-results > *', function () { $(window).one('mouseup', function () { quickSearchResults.addClass('hidden'); }); - mousedownOnResults = true; }); - inputEl.on('blur', function () { + + const inputParent = inputEl.parent(); + const resultParent = quickSearchResults.parent(); + inputParent.on('focusout', hideResults); + resultParent.on('focusout', hideResults); + function hideResults() { setTimeout(function () { - if (!inputEl.is(':focus') && !mousedownOnResults && !quickSearchResults.hasClass('hidden')) { + if (!inputParent.find(':focus').length && !resultParent.find(':focus').length && !quickSearchResults.hasClass('hidden')) { quickSearchResults.addClass('hidden'); } }, 200); - }); + } let ajaxified = false; hooks.on('action:ajaxify.end', function () { if (!ajaxify.isCold()) { ajaxified = true; } + quickSearchResults.addClass('hidden'); }); inputEl.on('focus', function () { - mousedownOnResults = false; const query = inputEl.val(); oldValue = query; if (query && quickSearchResults.find('#quick-search-results').children().length) { diff --git a/src/views/modals/merge-topic.tpl b/src/views/modals/merge-topic.tpl index 2fc99924f2..6b996922b9 100644 --- a/src/views/modals/merge-topic.tpl +++ b/src/views/modals/merge-topic.tpl @@ -1,6 +1,4 @@
- -
[[topic:thread-tools.merge-topics]]
@@ -13,7 +11,7 @@
-