CT: re-place a window when it is moved between desktops.
svn path=/trunk/kdebase/kwin/; revision=164082
This commit is contained in:
parent
4c1d786510
commit
2e99608428
1 changed files with 5 additions and 0 deletions
|
@ -2927,6 +2927,10 @@ void Workspace::sendClientToDesktop( Client* c, int desk )
|
||||||
c->setDesktop( desk );
|
c->setDesktop( desk );
|
||||||
if( desk == NETWinInfo::OnAllDesktops )
|
if( desk == NETWinInfo::OnAllDesktops )
|
||||||
c->setSticky( true );
|
c->setSticky( true );
|
||||||
|
else
|
||||||
|
//CT 01Jul2002 - the old position is most probably inappropriate on the new desktop
|
||||||
|
// thus we place the client again, before we show it, but only if it's not OnAllDesktops
|
||||||
|
place(c);
|
||||||
|
|
||||||
if ( c->isOnDesktop( currentDesktop() ) ) {
|
if ( c->isOnDesktop( currentDesktop() ) ) {
|
||||||
c->show();
|
c->show();
|
||||||
|
@ -2942,6 +2946,7 @@ void Workspace::sendClientToDesktop( Client* c, int desk )
|
||||||
focus_chain.append( c );
|
focus_chain.append( c );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
for ( ClientList::ConstIterator it = clients.begin(); it != clients.end(); ++it) {
|
for ( ClientList::ConstIterator it = clients.begin(); it != clients.end(); ++it) {
|
||||||
if ( (*it)->transientFor() == c->window() ) {
|
if ( (*it)->transientFor() == c->window() ) {
|
||||||
sendClientToDesktop( *it, desk );
|
sendClientToDesktop( *it, desk );
|
||||||
|
|
Loading…
Reference in a new issue