[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kwin
Subject:    [PATCH] Fix bug 203842 (incorrect rendering example window in
From:       Christoph Feck <christoph () maxiom ! de>
Date:       2009-08-19 11:59:10
Message-ID: 200908191359.10841.christoph () maxiom ! de
[Download RAW message or body]

Hi,

attached patch fixes the clipping bug of the deco previews. Tested with Qt 4.5 
and latest Qt 4.6.

Please review, thanks.
Christoph Feck (kdepepo)

References:
https://bugs.kde.org/show_bug.cgi?id=203842

["kcmkwin.diff" (text/x-diff)]

Index: preview.cpp
===================================================================
--- preview.cpp	(revision 1013188)
+++ preview.cpp	(working copy)
@@ -25,7 +25,7 @@
 #include <kglobal.h>
 #include <QLabel>
 #include <QStyle>
-//Added by qt3to4:
+#include <QPainter>
 #include <QMouseEvent>
 #include <QResizeEvent>
 #include <QVector>
@@ -108,12 +108,22 @@
     }
 
 void KDecorationPreview::paintEvent( QPaintEvent* e )
-{
-    QWidget::paintEvent(e);
-    if( deco[Inactive] ) deco[Inactive]->widget()->render( this, \
                deco[Inactive]->widget()->mapToParent( QPoint(0,0) ) );
-    if( deco[Active] ) deco[Active]->widget()->render( this, \
                deco[Active]->widget()->mapToParent( QPoint(0,0) ) );
-}
+    {
+    QPainter painter( this );
+    QPoint delta = mapTo( window(), QPoint(0, 0) );
 
+    if ( deco[Inactive] )
+        {
+        QWidget *w = deco[Inactive]->widget();
+        w->render( &painter, delta + w->mapToParent( QPoint(0, 0) ) );
+        }
+    if ( deco[Active] )
+        {
+        QWidget *w = deco[Active]->widget();
+        w->render( &painter, delta + w->mapToParent( QPoint(0, 0) ) );
+        }
+    }
+
 void KDecorationPreview::resizeEvent( QResizeEvent* e )
     {
     QWidget::resizeEvent( e );



_______________________________________________
kwin mailing list
kwin@kde.org
https://mail.kde.org/mailman/listinfo/kwin


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic