summaryrefslogtreecommitdiffstats
path: root/kwin/placement.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kwin/placement.cpp')
-rw-r--r--kwin/placement.cpp7
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());