From 2e996084282b308434bdd3f0c63a93cce1829217 Mon Sep 17 00:00:00 2001 From: Cristian Tibirna Date: Mon, 1 Jul 2002 04:22:02 +0000 Subject: [PATCH] CT: re-place a window when it is moved between desktops. svn path=/trunk/kdebase/kwin/; revision=164082 --- workspace.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/workspace.cpp b/workspace.cpp index ae28884864..d33bc41970 100644 --- a/workspace.cpp +++ b/workspace.cpp @@ -2927,6 +2927,10 @@ void Workspace::sendClientToDesktop( Client* c, int desk ) c->setDesktop( desk ); if( desk == NETWinInfo::OnAllDesktops ) 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() ) ) { c->show(); @@ -2942,6 +2946,7 @@ void Workspace::sendClientToDesktop( Client* c, int desk ) focus_chain.append( c ); } + for ( ClientList::ConstIterator it = clients.begin(); it != clients.end(); ++it) { if ( (*it)->transientFor() == c->window() ) { sendClientToDesktop( *it, desk );