Support _NET_WM_FULL_PLACEMENT.

svn path=/trunk/KDE/kdebase/workspace/; revision=662075
This commit is contained in:
Luboš Luňák 2007-05-07 12:37:12 +00:00
parent c0412fbf23
commit 47232a2c17
3 changed files with 8 additions and 2 deletions

View file

@ -166,7 +166,7 @@ bool Client::manage( Window w, bool isMapped )
it != mainclients.end(); it != mainclients.end();
++it ) ++it )
{ {
if( (*it)->isSpecialWindow()) if( mainclients.count() > 1 && (*it)->isSpecialWindow())
continue; // don't consider toolbars etc when placing continue; // don't consider toolbars etc when placing
maincl = *it; maincl = *it;
if( (*it)->isOnCurrentDesktop()) if( (*it)->isOnCurrentDesktop())

View file

@ -473,7 +473,7 @@ void Placement::placeOnMainWindow(Client* c, QRect& area, Policy nextPlacement )
it != mainwindows.end(); it != mainwindows.end();
++it ) ++it )
{ {
if( (*it)->isSpecialWindow()) if( mainwindows.count() > 1 && (*it)->isSpecialWindow())
continue; // don't consider toolbars etc when placing continue; // don't consider toolbars etc when placing
++mains_count; ++mains_count;
place_on2 = *it; 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' 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(); QRect geom = c->geometry();
geom.moveCenter( place_on->geometry().center()); geom.moveCenter( place_on->geometry().center());
c->move( geom.topLeft()); c->move( geom.topLeft());

View file

@ -293,6 +293,7 @@ void Workspace::init()
NET::WM2KDETemporaryRules | NET::WM2KDETemporaryRules |
NET::WM2ShowingDesktop | NET::WM2ShowingDesktop |
NET::WM2DesktopLayout | NET::WM2DesktopLayout |
NET::WM2FullPlacement |
0 0
, ,
NET::ActionMove | NET::ActionMove |