diff --git a/Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp b/Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp index e149616544..70b415a9ae 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 86fecddf21..6b3a2daef6 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) {