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:
parent
c907b8acc1
commit
1819ad69b2
2 changed files with 12 additions and 2 deletions
|
@ -32,6 +32,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#include <kapplication.h>
|
#include <kapplication.h>
|
||||||
#include <kglobal.h>
|
#include <kglobal.h>
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
|
#include <QDesktopWidget>
|
||||||
#include <kwindowsystem.h>
|
#include <kwindowsystem.h>
|
||||||
|
|
||||||
#include "placement.h"
|
#include "placement.h"
|
||||||
|
@ -875,6 +876,11 @@ void Client::checkWorkspacePosition()
|
||||||
{
|
{
|
||||||
if( isDesktop())
|
if( isDesktop())
|
||||||
{
|
{
|
||||||
|
if (geometry() == workspace()->clientArea( ScreenArea, this ))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
QRect area = workspace()->clientArea( FullArea, this );
|
QRect area = workspace()->clientArea( FullArea, this );
|
||||||
if( geometry() != area )
|
if( geometry() != area )
|
||||||
setGeometry( area );
|
setGeometry( area );
|
||||||
|
|
|
@ -33,6 +33,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
#include "notifications.h"
|
#include "notifications.h"
|
||||||
#include <QX11Info>
|
#include <QX11Info>
|
||||||
|
#include <QDesktopWidget>
|
||||||
#include "rules.h"
|
#include "rules.h"
|
||||||
#include "group.h"
|
#include "group.h"
|
||||||
|
|
||||||
|
@ -235,9 +236,12 @@ bool Client::manage( Window w, bool isMapped )
|
||||||
if ( isDesktop() )
|
if ( isDesktop() )
|
||||||
{
|
{
|
||||||
// desktops are treated slightly special
|
// desktops are treated slightly special
|
||||||
|
if (geom != workspace()->clientArea( ScreenArea, geom.center(), desktop()))
|
||||||
|
{
|
||||||
geom = workspace()->clientArea( FullArea, geom.center(), desktop());
|
geom = workspace()->clientArea( FullArea, geom.center(), desktop());
|
||||||
placementDone = true;
|
placementDone = true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool usePosition = false;
|
bool usePosition = false;
|
||||||
if ( isMapped || session || placementDone )
|
if ( isMapped || session || placementDone )
|
||||||
|
|
Loading…
Reference in a new issue