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
|
||||
for (int i = 0; i < unconstrained_stacking_order.size(); ++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;
|
||||
break;
|
||||
}
|
||||
|
@ -468,7 +468,7 @@ void Workspace::restack(Client* c, Client* under)
|
|||
|
||||
void Workspace::restackClientUnderActive(Client* c)
|
||||
{
|
||||
if (!active_client || active_client == c) {
|
||||
if (!active_client || active_client == c || active_client->layer() != c->layer()) {
|
||||
raiseClient(c);
|
||||
return;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue