diff --git a/events.cpp b/events.cpp index 16047a65c1..2bfff7f33f 100644 --- a/events.cpp +++ b/events.cpp @@ -1682,6 +1682,7 @@ void Unmanaged::configureNotifyEvent( XConfigureEvent* e ) addWorkspaceRepaint( geometry()); // damage old area QRect old = geom; geom = newgeom; + addRepaintFull(); if( old.size() != geom.size()) discardWindowPixmap(); if( scene != NULL ) diff --git a/layers.cpp b/layers.cpp index a0564ea700..ad02fbff67 100644 --- a/layers.cpp +++ b/layers.cpp @@ -216,6 +216,10 @@ void Workspace::propagateClients( bool propagate_new_clients ) cl[pos++] = (*it)->window(); 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. + x_stacking_dirty = true; }