--- kwin/options.cpp.sav 2006-06-09 17:58:18.000000000 +0200
+++ kwin/options.cpp 2006-06-09 18:02:27.000000000 +0200
@@ -102,9 +102,10 @@ unsigned long Options::updateSettings()
delete gc;
placement = Placement::policyFromString( config->readEntry("Placement"), true );
+ xineramaPlacementScreen = KCLAMP( config->readNumEntry( "XineramaPlacementScreen", -1 ),
+ -1, qApp->desktop()->numScreens() - 1 );
animateShade = config->readBoolEntry("AnimateShade", TRUE );
-
animateMinimize = config->readBoolEntry("AnimateMinimize", TRUE );
animateMinimizeSpeed = config->readNumEntry("AnimateMinimizeSpeed", 5 );
--- kwin/options.h.sav 2006-06-09 17:57:26.000000000 +0200
+++ kwin/options.h 2006-06-09 18:02:27.000000000 +0200
@@ -138,6 +138,9 @@ class Options : public KDecorationOption
bool xineramaMovementEnabled;
bool xineramaMaximizeEnabled;
bool xineramaFullscreenEnabled;
+
+ // number, or -1 = active screen (Workspace::activeScreen())
+ int xineramaPlacementScreen;
/**
MoveResizeMode, either Tranparent or Opaque.
--- kwin/kwin.kcfg.sav 2006-06-09 18:22:06.000000000 +0200
+++ kwin/kwin.kcfg 2006-06-09 18:25:11.000000000 +0200
@@ -62,6 +62,7 @@
+
--- kwin/manage.cpp.sav 2006-06-09 17:56:08.000000000 +0200
+++ kwin/manage.cpp 2006-06-09 18:02:27.000000000 +0200
@@ -202,9 +202,14 @@ bool Client::manage( Window w, bool isMa
if( isMapped || session )
area = workspace()->clientArea( FullArea, geom.center(), desktop());
else if( options->xineramaPlacementEnabled )
- area = workspace()->clientArea( PlacementArea, QCursor::pos(), desktop());
+ {
+ int screen = options->xineramaPlacementScreen;
+ if( screen == -1 ) // active screen
+ screen = workspace()->activeScreen();
+ area = workspace()->clientArea( PlacementArea, workspace()->screenGeometry( screen ).center(), desktop());
+ }
else
- area = workspace()->clientArea( PlacementArea, geom.center(), desktop());
+ area = workspace()->clientArea( PlacementArea, QCursor::pos(), desktop());
if( int type = checkFullScreenHack( geom ))
{