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(