Fix invalidation of cached x stacking order in wayland only mode
Currently, if kwin/wayland runs without xwayland, the order in which windows are painted doesn't actually reflect the true stacking order. If the stacking order has been changed, we need to invalidate the cached x stacking order. But it's done only when RootInfo is present. If Xwayland doesn't run, RootInfo is not available and thus window raising is completely broken. With this change, the x stacking order will be invalidated every time some window has been raised, no matter what mode kwin operates in.
This commit is contained in:
parent
6f53f62741
commit
75cad57cd9
1 changed files with 1 additions and 4 deletions
|
@ -113,6 +113,7 @@ void Workspace::updateStackingOrder(bool propagate_new_clients)
|
|||
stacking_order = new_stacking_order;
|
||||
if (changed || propagate_new_clients) {
|
||||
propagateClients(propagate_new_clients);
|
||||
markXStackingOrderAsDirty();
|
||||
emit stackingOrderChanged();
|
||||
if (m_compositor) {
|
||||
m_compositor->addRepaintFull();
|
||||
|
@ -217,10 +218,6 @@ void Workspace::propagateClients(bool propagate_new_clients)
|
|||
}
|
||||
rootInfo()->setClientListStacking(cl, pos);
|
||||
delete [] cl;
|
||||
|
||||
// Make the cached stacking order invalid here, in case we need the new stacking order before we get
|
||||
// the matching event, due to X being asynchronous.
|
||||
markXStackingOrderAsDirty();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue