From 0523ae705a2ec19a3592bf6b007981884331a0c8 Mon Sep 17 00:00:00 2001 From: John Preston Date: Thu, 16 Jan 2025 17:51:38 +0400 Subject: [PATCH] Fix invisible chat type filter. --- Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp | 10 ++++++++-- Telegram/SourceFiles/dialogs/dialogs_inner_widget.h | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp b/Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp index 99b87f3d4..83b55be6d 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp +++ b/Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp @@ -1199,6 +1199,7 @@ void InnerWidget::paintEvent(QPaintEvent *e) { p.translate(0, (_previewResults.size() - to) * _st->height); } } + if (!_searchResults.empty()) { const auto text = showUnreadInSearchResults ? u"Search results"_q @@ -1215,7 +1216,7 @@ void InnerWidget::paintEvent(QPaintEvent *e) { const auto filterFont = filterOver ? st::searchedBarFont->underline() : st::searchedBarFont; - if (_searchState.tab == ChatSearchTab::MyMessages) { + if (hasChatTypeFilter()) { const auto text = ChatTypeFilterLabel(_searchState.filter); if (!_chatTypeFilterWidth) { _chatTypeFilterWidth = filterFont->width(text); @@ -1747,7 +1748,7 @@ void InnerWidget::selectByMouse(QPoint globalPosition) { } auto selectedChatTypeFilter = false; const auto from = skip - st::searchedBarHeight; - if (mouseY <= skip && mouseY >= from) { + if (hasChatTypeFilter() && mouseY <= skip && mouseY >= from) { const auto left = width() - _chatTypeFilterWidth - 2 * st::searchedBarPosition.x(); @@ -2998,6 +2999,11 @@ void InnerWidget::dragPinnedFromTouch() { updateReorderPinned(now); } +bool InnerWidget::hasChatTypeFilter() const { + return !_searchResults.empty() + && (_searchState.tab == ChatSearchTab::MyMessages); +} + void InnerWidget::searchRequested(bool loading) { _searchWaiting = false; _searchLoading = loading; diff --git a/Telegram/SourceFiles/dialogs/dialogs_inner_widget.h b/Telegram/SourceFiles/dialogs/dialogs_inner_widget.h index 1f7310153..f466b7527 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_inner_widget.h +++ b/Telegram/SourceFiles/dialogs/dialogs_inner_widget.h @@ -461,6 +461,7 @@ private: void handleChatListEntryRefreshes(); void moveSearchIn(); void dragPinnedFromTouch(); + [[nodiscard]] bool hasChatTypeFilter() const; void saveChatsFilterScrollState(FilterId filterId); void restoreChatsFilterScrollState(FilterId filterId);