Fix account activation after window closing.

This commit is contained in:
John Preston 2023-01-23 09:29:35 +04:00
parent 58cedb796e
commit 5278ed1f41
2 changed files with 8 additions and 3 deletions

View file

@ -1344,6 +1344,12 @@ void Application::closeWindow(not_null<Window::Controller*> window) {
++i; ++i;
} }
} }
const auto account = domain().started()
? &domain().active()
: nullptr;
if (account && !_primaryWindows.contains(account) && _lastActiveWindow) {
domain().activate(&_lastActiveWindow->account());
}
} }
void Application::closeChatFromWindows(not_null<PeerData*> peer) { void Application::closeChatFromWindows(not_null<PeerData*> peer) {

View file

@ -564,7 +564,7 @@ void SetupAccountsWrap(
not_null<Main::Account*> account, not_null<Main::Account*> account,
Fn<void(Qt::KeyboardModifiers)> callback, Fn<void(Qt::KeyboardModifiers)> callback,
bool locked) { bool locked) {
const auto active = (account == &Core::App().activeAccount()); const auto active = (account == &window->session().account());
const auto session = &account->session(); const auto session = &account->session();
const auto user = session->user(); const auto user = session->user();
@ -659,8 +659,7 @@ void SetupAccountsWrap(
state->menu->popup(QCursor::pos()); state->menu->popup(QCursor::pos());
return; return;
} }
if (&session->account() == &Core::App().activeAccount() if (session == &window->session() || state->menu) {
|| state->menu) {
return; return;
} }
state->menu = base::make_unique_q<Ui::PopupMenu>( state->menu = base::make_unique_q<Ui::PopupMenu>(