Allow desktop-type windows to only span one xrandr/mergedfb/xinerama-screen instead of all screens combined.

svn path=/trunk/KDE/kdebase/workspace/; revision=803349
This commit is contained in:
Aike J. Sommer 2008-05-02 16:35:35 +00:00
parent c907b8acc1
commit 1819ad69b2
2 changed files with 12 additions and 2 deletions

View file

@ -32,6 +32,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include <kapplication.h>
#include <kglobal.h>
#include <QPainter>
#include <QDesktopWidget>
#include <kwindowsystem.h>
#include "placement.h"
@ -875,6 +876,11 @@ void Client::checkWorkspacePosition()
{
if( isDesktop())
{
if (geometry() == workspace()->clientArea( ScreenArea, this ))
{
return;
}
QRect area = workspace()->clientArea( FullArea, this );
if( geometry() != area )
setGeometry( area );

View file

@ -33,6 +33,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "notifications.h"
#include <QX11Info>
#include <QDesktopWidget>
#include "rules.h"
#include "group.h"
@ -235,8 +236,11 @@ bool Client::manage( Window w, bool isMapped )
if ( isDesktop() )
{
// desktops are treated slightly special
geom = workspace()->clientArea( FullArea, geom.center(), desktop());
placementDone = true;
if (geom != workspace()->clientArea( ScreenArea, geom.center(), desktop()))
{
geom = workspace()->clientArea( FullArea, geom.center(), desktop());
placementDone = true;
}
}
bool usePosition = false;