From 2df71872a00df4cc24226041faac6c61f4dbfe1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=BCbking?= Date: Sat, 3 Oct 2009 15:40:58 +0000 Subject: [PATCH] don't raise the whole group with a transient, but only its ancestors BUG: 199910 svn path=/trunk/KDE/kdebase/workspace/; revision=1030954 --- layers.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/layers.cpp b/layers.cpp index a70b63d73d..71d5b73fb4 100644 --- a/layers.cpp +++ b/layers.cpp @@ -389,10 +389,12 @@ void Workspace::raiseClient( Client* c, bool nogroup ) if( !nogroup && c->isTransient()) { - ClientList wins = ensureStackingOrder( c->group()->members()); - foreach( Client* c2, wins ) - if( c2 != c ) - raiseClient( c2, true ); + ClientList transients; + Client *transient_parent = c; + while ((transient_parent = transient_parent->transientFor())) + transients << transient_parent; + foreach( transient_parent, transients ) + raiseClient( transient_parent, true ); } unconstrained_stacking_order.removeAll( c );