diff --git a/layers.cpp b/layers.cpp index 4521554fb9..3a75909f0d 100644 --- a/layers.cpp +++ b/layers.cpp @@ -116,7 +116,7 @@ void Workspace::updateStackingOrder(bool propagate_new_clients) return; } ToplevelList new_stacking_order = constrainedStackingOrder(); - bool changed = (new_stacking_order != stacking_order || force_restacking); + bool changed = (force_restacking || new_stacking_order != stacking_order); force_restacking = false; stacking_order = new_stacking_order; #if 0 @@ -203,8 +203,10 @@ void Workspace::propagateClients(bool propagate_new_clients) cl = new Window[ stacking_order.count()]; pos = 0; - for (ToplevelList::ConstIterator it = stacking_order.constBegin(); it != stacking_order.constEnd(); ++it) - cl[pos++] = (*it)->window(); + for (ToplevelList::ConstIterator it = stacking_order.constBegin(); it != stacking_order.constEnd(); ++it) { + if ((*it)->isClient()) + cl[pos++] = (*it)->window(); + } rootInfo->setClientListStacking(cl, pos); delete [] cl;