diff -up kdebase-workspace-4.1.2/kdm/kfrontend/kgapp.cpp.orig kdebase-workspace-4.1.2/kdm/kfrontend/kgapp.cpp
--- kdebase-workspace-4.1.2/kdm/kfrontend/kgapp.cpp.orig 2008-10-31 14:23:05.000000000 +0100
+++ kdebase-workspace-4.1.2/kdm/kfrontend/kgapp.cpp 2008-10-31 14:25:23.000000000 +0100
@@ -248,8 +248,9 @@ kg_main( const char *argv0 )
gSendInt( G_Ready );
if (themer) {
- QPixmap pm( app.desktop()->screen()->size() );
- themer->paintBackground( &pm );
+ QPixmap pm( app.desktop()->size() );
+ for (int i = 0; i < app.desktop()->numScreens(); ++i)
+ themer->paintBackground( &pm, app.desktop()->screenGeometry(i) );
QPalette palette;
palette.setBrush( app.desktop()->backgroundRole(), QBrush( pm ) );
app.desktop()->setPalette( palette );
diff -up kdebase-workspace-4.1.2/kdm/kfrontend/themer/kdmthemer.cpp.orig kdebase-workspace-4.1.2/kdm/kfrontend/themer/kdmthemer.cpp
--- kdebase-workspace-4.1.2/kdm/kfrontend/themer/kdmthemer.cpp.orig 2008-10-31 14:21:32.000000000 +0100
+++ kdebase-workspace-4.1.2/kdm/kfrontend/themer/kdmthemer.cpp 2008-10-31 14:22:02.000000000 +0100
@@ -186,10 +186,9 @@ KdmThemer::widgetEvent( QEvent *e )
}
void
-KdmThemer::paintBackground( QPaintDevice *dev )
+KdmThemer::paintBackground( QPaintDevice *dev, const QRect &rect )
{
debug() << "==== setting background geometry ====";
- QRect rect( 0, 0, dev->width(), dev->height() );
QStack<QSize> ps;
rootItem->setGeometry( ps, rect, true );
QPainter p( dev );
diff -up kdebase-workspace-4.1.2/kdm/kfrontend/themer/kdmthemer.h.orig kdebase-workspace-4.1.2/kdm/kfrontend/themer/kdmthemer.h
--- kdebase-workspace-4.1.2/kdm/kfrontend/themer/kdmthemer.h.orig 2008-10-31 14:22:13.000000000 +0100
+++ kdebase-workspace-4.1.2/kdm/kfrontend/themer/kdmthemer.h 2008-10-31 14:22:50.000000000 +0100
@@ -29,6 +29,7 @@ class KdmItem;
class QDomNode;
class QPaintDevice;
+class QRect;
/**
* @author Unai Garro
@@ -69,7 +70,7 @@ public:
void setTypeVisible( const QString &t, bool show );
bool typeVisible( const QString &t ) { return m_showTypes.value( t, false ); }
- void paintBackground( QPaintDevice *dev );
+ void paintBackground( QPaintDevice *dev, const QRect &rect );
Q_SIGNALS:
void activated( const QString &id );