From 5278ed1f41916e3e12f7b740cabb9bee2fd1fc94 Mon Sep 17 00:00:00 2001 From: John Preston Date: Mon, 23 Jan 2023 09:29:35 +0400 Subject: [PATCH] Fix account activation after window closing. --- Telegram/SourceFiles/core/application.cpp | 6 ++++++ Telegram/SourceFiles/settings/settings_information.cpp | 5 ++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Telegram/SourceFiles/core/application.cpp b/Telegram/SourceFiles/core/application.cpp index f3e99cd8f..eac4e8120 100644 --- a/Telegram/SourceFiles/core/application.cpp +++ b/Telegram/SourceFiles/core/application.cpp @@ -1344,6 +1344,12 @@ void Application::closeWindow(not_null window) { ++i; } } + const auto account = domain().started() + ? &domain().active() + : nullptr; + if (account && !_primaryWindows.contains(account) && _lastActiveWindow) { + domain().activate(&_lastActiveWindow->account()); + } } void Application::closeChatFromWindows(not_null peer) { diff --git a/Telegram/SourceFiles/settings/settings_information.cpp b/Telegram/SourceFiles/settings/settings_information.cpp index f7834d77f..957c3b069 100644 --- a/Telegram/SourceFiles/settings/settings_information.cpp +++ b/Telegram/SourceFiles/settings/settings_information.cpp @@ -564,7 +564,7 @@ void SetupAccountsWrap( not_null account, Fn callback, bool locked) { - const auto active = (account == &Core::App().activeAccount()); + const auto active = (account == &window->session().account()); const auto session = &account->session(); const auto user = session->user(); @@ -659,8 +659,7 @@ void SetupAccountsWrap( state->menu->popup(QCursor::pos()); return; } - if (&session->account() == &Core::App().activeAccount() - || state->menu) { + if (session == &window->session() || state->menu) { return; } state->menu = base::make_unique_q(