From 82aa125975b519b9c862aada602988e0a6cc2809 Mon Sep 17 00:00:00 2001 From: Hugo Pereira Da Costa Date: Wed, 2 Sep 2009 14:30:30 +0000 Subject: [PATCH] reverted to r1015361 because last commit was adressing the same issue (already fixed). Sorry svn path=/trunk/KDE/kdebase/workspace/; revision=1018986 --- kcmkwin/kwindecoration/preview.cpp | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/kcmkwin/kwindecoration/preview.cpp b/kcmkwin/kwindecoration/preview.cpp index b9a4b5dab2..b08b2bbfc7 100644 --- a/kcmkwin/kwindecoration/preview.cpp +++ b/kcmkwin/kwindecoration/preview.cpp @@ -109,23 +109,19 @@ void KDecorationPreview::disablePreview() void KDecorationPreview::paintEvent( QPaintEvent* e ) { - - QWidget::paintEvent(e); - - // render existing decorations into a pixmap - // there is some translations involved to make use of event.rect() - // and optimize painting - QRect rect( KDecorationPreview::rect().intersected( e->rect() ) ); - QPixmap pixmap( rect.size() ); - pixmap.fill( Qt::transparent ); - if( deco[Inactive] ) deco[Inactive]->widget()->render( &pixmap, deco[Inactive]->widget()->mapToParent( -rect.topLeft() ) ); - if( deco[Active] ) deco[Active]->widget()->render( &pixmap, deco[Active]->widget()->mapToParent( -rect.topLeft() ) ); - - // draw pixmap on widget QPainter painter( this ); - painter.setClipRect( e->rect() ); - painter.drawPixmap( rect.topLeft(), pixmap ); - + 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 )