updt ActiveLayer client layer on client activation
When a client becomes active on a screen with a fullscreen window on the ActiveLayer, that window needs to be withdrawn from the active layer explicitly as it does not get this update with deactivation. REVIEW: 111084
This commit is contained in:
parent
e717c131bf
commit
936b63dc1a
1 changed files with 11 additions and 2 deletions
|
@ -247,11 +247,20 @@ void Workspace::setActiveClient(Client* c)
|
|||
}
|
||||
active_client = c;
|
||||
Q_ASSERT(c == NULL || c->isActive());
|
||||
if (active_client != NULL)
|
||||
last_active_client = active_client;
|
||||
|
||||
if (active_client) {
|
||||
last_active_client = active_client;
|
||||
FocusChain::self()->update(active_client, FocusChain::MakeFirst);
|
||||
active_client->demandAttention(false);
|
||||
|
||||
// activating a client can cause a non active fullscreen window to loose the ActiveLayer status on > 1 screens
|
||||
if (screens()->count() > 1) {
|
||||
for (ClientList::Iterator it = clients.begin(); it != clients.end(); ++it) {
|
||||
if (*it != active_client && (*it)->layer() == ActiveLayer && (*it)->screen() == active_client->screen()) {
|
||||
updateClientLayer(*it);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
pending_take_activity = NULL;
|
||||
|
||||
|
|
Loading…
Reference in a new issue