diff options
Diffstat (limited to 'kwin/placement.cpp')
-rw-r--r-- | kwin/placement.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/kwin/placement.cpp b/kwin/placement.cpp index 223b95c5b..e9ae1b95e 100644 --- a/kwin/placement.cpp +++ b/kwin/placement.cpp @@ -473,7 +473,7 @@ void Placement::placeOnMainWindow(Client* c, QRect& area, Policy nextPlacement ) it != mainwindows.end(); ++it ) { - if( (*it)->isSpecialWindow()) + if( mainwindows.count() > 1 && (*it)->isSpecialWindow()) continue; // don't consider toolbars etc when placing ++mains_count; place_on2 = *it; @@ -502,6 +502,11 @@ void Placement::placeOnMainWindow(Client* c, QRect& area, Policy nextPlacement ) } place_on = place_on2; // use the only window filtered together with 'mains_count' } + if( place_on->isDesktop()) + { + place( c, area, Centered ); + return; + } QRect geom = c->geometry(); geom.moveCenter( place_on->geometry().center()); c->move( geom.topLeft()); |