From d5a347ede72a868987cc65713ce7e454c786b083 Mon Sep 17 00:00:00 2001 From: John Preston Date: Wed, 24 Apr 2024 17:41:12 +0400 Subject: [PATCH] Try cancelling the new search by mouse back button. --- Telegram/SourceFiles/dialogs/dialogs_widget.cpp | 7 +++++++ Telegram/SourceFiles/dialogs/dialogs_widget.h | 1 + Telegram/SourceFiles/mainwidget.cpp | 3 ++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Telegram/SourceFiles/dialogs/dialogs_widget.cpp b/Telegram/SourceFiles/dialogs/dialogs_widget.cpp index b50511dbd..856019d0f 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_widget.cpp +++ b/Telegram/SourceFiles/dialogs/dialogs_widget.cpp @@ -1107,6 +1107,13 @@ void Widget::updateHasFocus(not_null focused) { } } +bool Widget::cancelSearchByMouseBack() { + return _searchHasFocus + && !_searchSuggestionsLocked + && !_searchInChat + && cancelSearch(); +} + void Widget::processSearchFocusChange() { _searchSuggestionsLocked = _suggestions && _suggestions->persist(); updateCancelSearch(); diff --git a/Telegram/SourceFiles/dialogs/dialogs_widget.h b/Telegram/SourceFiles/dialogs/dialogs_widget.h index 1c6179d03..7218c2513 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_widget.h +++ b/Telegram/SourceFiles/dialogs/dialogs_widget.h @@ -133,6 +133,7 @@ public: QRect floatPlayerAvailableRect() override; bool cancelSearch(); + bool cancelSearchByMouseBack(); ~Widget(); diff --git a/Telegram/SourceFiles/mainwidget.cpp b/Telegram/SourceFiles/mainwidget.cpp index 4a598931c..6e6fbf8d3 100644 --- a/Telegram/SourceFiles/mainwidget.cpp +++ b/Telegram/SourceFiles/mainwidget.cpp @@ -2649,7 +2649,8 @@ bool MainWidget::eventFilter(QObject *o, QEvent *e) { if (widget && (widget->window() == window())) { const auto event = static_cast(e); if (event->button() == Qt::BackButton) { - if (!Core::App().hideMediaView()) { + if (!Core::App().hideMediaView() + && (!_dialogs || !_dialogs->cancelSearchByMouseBack())) { handleHistoryBack(); } return true;