group aware restack accounts layer compatibility
the restack code stacks under all members of an application this is a problem if the group contains a keep below or desktop etc. (while the other window is a normal one) what resulted in restacking the client "invalidly" above the window of the other layer but below all other memberso of its own group for no reason REVIEW: 112627 CCBUG: 110543
This commit is contained in:
parent
51c3c6cc42
commit
79d6c47a46
1 changed files with 2 additions and 2 deletions
|
@ -450,7 +450,7 @@ void Workspace::restack(Client* c, Client* under)
|
||||||
// put in the stacking order below _all_ windows belonging to the active application
|
// put in the stacking order below _all_ windows belonging to the active application
|
||||||
for (int i = 0; i < unconstrained_stacking_order.size(); ++i) {
|
for (int i = 0; i < unconstrained_stacking_order.size(); ++i) {
|
||||||
Client *other = qobject_cast<Client*>(unconstrained_stacking_order.at(i));
|
Client *other = qobject_cast<Client*>(unconstrained_stacking_order.at(i));
|
||||||
if (other && Client::belongToSameApplication(under, other)) {
|
if (other && other->layer() == c->layer() && Client::belongToSameApplication(under, other)) {
|
||||||
under = (c == other) ? 0 : other;
|
under = (c == other) ? 0 : other;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -468,7 +468,7 @@ void Workspace::restack(Client* c, Client* under)
|
||||||
|
|
||||||
void Workspace::restackClientUnderActive(Client* c)
|
void Workspace::restackClientUnderActive(Client* c)
|
||||||
{
|
{
|
||||||
if (!active_client || active_client == c) {
|
if (!active_client || active_client == c || active_client->layer() != c->layer()) {
|
||||||
raiseClient(c);
|
raiseClient(c);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue