From a11535806d5b328908a6b08467fbb1f9afcf2fe7 Mon Sep 17 00:00:00 2001 From: John Preston Date: Fri, 19 Apr 2024 22:04:36 +0400 Subject: [PATCH] Always show cancel search when focused. --- Telegram/SourceFiles/dialogs/dialogs_widget.cpp | 10 +++++++++- Telegram/SourceFiles/dialogs/dialogs_widget.h | 1 + 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Telegram/SourceFiles/dialogs/dialogs_widget.cpp b/Telegram/SourceFiles/dialogs/dialogs_widget.cpp index d56f2ef46..ea0d08f67 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_widget.cpp +++ b/Telegram/SourceFiles/dialogs/dialogs_widget.cpp @@ -1109,6 +1109,7 @@ void Widget::updateHasFocus(not_null focused) { void Widget::processSearchFocusChange() { _searchSuggestionsLocked = _suggestions && _suggestions->persist(); + updateCancelSearch(); updateStoriesVisibility(); updateForceDisplayWide(); updateSuggestions(anim::type::normal); @@ -2550,6 +2551,13 @@ void Widget::listScrollUpdated() { _scrollToTop->update(); } +void Widget::updateCancelSearch() { + const auto shown = _searchHasFocus + || _searchSuggestionsLocked + || !_search->getLastText().isEmpty(); + _cancelSearch->toggle(shown, anim::type::normal); +} + void Widget::applySearchUpdate(bool force) { if (_showAnimation && !force) { return; @@ -2562,7 +2570,7 @@ void Widget::applySearchUpdate(bool force) { if (filterText.isEmpty() && !_searchFromAuthor && _searchTags.empty()) { clearSearchCache(); } - _cancelSearch->toggle(!filterText.isEmpty(), anim::type::normal); + updateCancelSearch(); if (!_postponeProcessSearchFocusChange) { updateSuggestions(anim::type::instant); } diff --git a/Telegram/SourceFiles/dialogs/dialogs_widget.h b/Telegram/SourceFiles/dialogs/dialogs_widget.h index ac37ed427..1c6179d03 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_widget.h +++ b/Telegram/SourceFiles/dialogs/dialogs_widget.h @@ -227,6 +227,7 @@ private: void closeChildList(anim::type animated); void fullSearchRefreshOn(rpl::producer<> events); + void updateCancelSearch(); void applySearchUpdate(bool force = false); void refreshLoadMoreButton(bool mayBlock, bool isBlocked); void loadMoreBlockedByDate();