From 191ea6f0f4dce5eca6be619b43a5ac9a30f7c07b Mon Sep 17 00:00:00 2001 From: John Preston Date: Thu, 22 Dec 2022 11:25:24 +0400 Subject: [PATCH] Fix search in chat / jump to archive. --- Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp | 7 +++++-- Telegram/SourceFiles/dialogs/dialogs_widget.cpp | 4 +++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp b/Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp index e14961654..70b415a9a 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp +++ b/Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp @@ -3703,8 +3703,11 @@ void InnerWidget::setupShortcuts() { const auto folder = session().data().folderLoaded( Data::Folder::kId); if (folder && !folder->chatsList()->empty()) { - _controller->openFolder(folder); - _controller->window().hideSettingsAndLayer(); + const auto controller = _controller; + controller->openFolder(folder); + + // Calling openFolder() could've destroyed this widget. + controller->window().hideSettingsAndLayer(); return true; } return false; diff --git a/Telegram/SourceFiles/dialogs/dialogs_widget.cpp b/Telegram/SourceFiles/dialogs/dialogs_widget.cpp index 86fecddf2..6b3a2daef 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_widget.cpp +++ b/Telegram/SourceFiles/dialogs/dialogs_widget.cpp @@ -2161,7 +2161,9 @@ bool Widget::setSearchInChat(Key chat, PeerData *from) { } _searchInMigrated = nullptr; if (peer) { - if (const auto migrateTo = peer->migrateTo()) { + if (_layout != Layout::Main) { + return false; + } else if (const auto migrateTo = peer->migrateTo()) { return setSearchInChat(peer->owner().history(migrateTo), from); } else if (const auto migrateFrom = peer->migrateFrom()) { if (!forum) {