[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