more robust raise algorithm
svn path=/trunk/kdebase/kwin/; revision=33562
This commit is contained in:
parent
231f10c92e
commit
ecec648c11
1 changed files with 13 additions and 3 deletions
|
@ -850,9 +850,19 @@ void Workspace::raiseClient( Client* c )
|
|||
XRestackWindows(qt_xdisplay(), new_stack, i);
|
||||
delete [] new_stack;
|
||||
|
||||
if ( c->transientFor() )
|
||||
raiseClient( findClient( c->transientFor() ) );
|
||||
if ( c->transientFor() ) {
|
||||
Client* t = findClient( c->transientFor() );
|
||||
Client* t2;
|
||||
while (t && t->transientFor() ) {
|
||||
t2 = findClient( t->transientFor() );
|
||||
if ( t2 == c )
|
||||
goto end;
|
||||
t = t2;
|
||||
}
|
||||
raiseClient( t );
|
||||
}
|
||||
|
||||
end:
|
||||
propagateClients( TRUE );
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue