From a83e508bdd5f9e87b9071f7118b5b2276438a98f Mon Sep 17 00:00:00 2001 From: Christoph Feck Date: Tue, 25 Aug 2009 11:13:27 +0000 Subject: [PATCH] Use QPainter to render preview Reviewed by Lucas Murray BUG: 203842 svn path=/trunk/KDE/kdebase/workspace/; revision=1015361 --- kcmkwin/kwindecoration/preview.cpp | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/kcmkwin/kwindecoration/preview.cpp b/kcmkwin/kwindecoration/preview.cpp index bcad4d8821..b08b2bbfc7 100644 --- a/kcmkwin/kwindecoration/preview.cpp +++ b/kcmkwin/kwindecoration/preview.cpp @@ -25,7 +25,7 @@ #include #include #include -//Added by qt3to4: +#include #include #include #include @@ -108,11 +108,21 @@ void KDecorationPreview::disablePreview() } 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 ) {