diff --git a/Telegram/SourceFiles/dialogs/dialogs_widget.cpp b/Telegram/SourceFiles/dialogs/dialogs_widget.cpp index 9d873db04a..4d6fb3382e 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_widget.cpp +++ b/Telegram/SourceFiles/dialogs/dialogs_widget.cpp @@ -1035,10 +1035,17 @@ void Widget::setupTopBarSuggestions(not_null dialogs) { _openedFolderOrForumChanges.events_starting_with(false), widthValue() | rpl::map( _1 >= st::columnMinimalWidthLeft - ) | rpl::distinct_until_changed() - ) | rpl::map([=](FilterId id, bool folderOrForum, bool wide) { + ) | rpl::distinct_until_changed(), + _searchStateForTopBarSuggestion.events_starting_with( + !_searchState.query.isEmpty()) + ) | rpl::map([=]( + FilterId id, + bool folderOrForum, + bool wide, + bool search) { return !folderOrForum && wide + && !search && (id == session->data().chatsFilters().defaultId()); }); return TopBarSuggestionValue(dialogs, session, std::move(on)); @@ -3482,6 +3489,9 @@ bool Widget::applySearchState(SearchState state) { && !_openedForum); updateControlsGeometry(); } + if (_topBarSuggestion && queryEmptyChanged) { + _searchStateForTopBarSuggestion.fire(!_searchState.query.isEmpty()); + } _searchWithPostsPreview = computeSearchWithPostsPreview(); if (queryChanged) { updateLockUnlockVisibility(anim::type::normal); diff --git a/Telegram/SourceFiles/dialogs/dialogs_widget.h b/Telegram/SourceFiles/dialogs/dialogs_widget.h index 2ed8f98cb8..a38ce878f8 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_widget.h +++ b/Telegram/SourceFiles/dialogs/dialogs_widget.h @@ -331,6 +331,7 @@ private: Ui::SlideWrap *_topBarSuggestion = nullptr; rpl::event_stream _topBarSuggestionHeightChanged; + rpl::event_stream _searchStateForTopBarSuggestion; rpl::event_stream _openedFolderOrForumChanges; object_ptr _scroll;