From 6d329bb015eed6810f3a515b1a6cb3dba09dada4 Mon Sep 17 00:00:00 2001 From: Hugo Pereira Da Costa Date: Sat, 29 Aug 2009 20:55:36 +0000 Subject: [PATCH] fixed button rendering using QPainterPath, as done for kde2 windeco svn path=/trunk/KDE/kdebase/workspace/; revision=1017181 --- clients/redmond/redmond.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/clients/redmond/redmond.cpp b/clients/redmond/redmond.cpp index 7689bd6f8d..557789a2a4 100644 --- a/clients/redmond/redmond.cpp +++ b/clients/redmond/redmond.cpp @@ -338,10 +338,15 @@ void RedmondButton::drawButton(QPainter *p) p->drawPixmap(0, 0, miniBtn ? *iMiniBtnPix1 : *iBtnPix1); } - p->setPen( *btnForeground ); - int xOff = (width()-10)/2; - int yOff = (height()-10)/2; - p->drawPixmap(isDown() ? xOff+1: xOff, isDown() ? yOff+1 : yOff, deco); + QPainterPath path; + path.addRegion( deco ); + p->setPen( Qt::NoPen ); + p->setBrush( *btnForeground ); + QPoint offset( ( width() - 10 )/2, ( height() - 10 )/2 ); + if( isDown() ) offset += QPoint( 1, 1 ); + p->translate( offset ); + p->drawPath( path ); + } else { if (isLeft() ) { p->fillRect(0, 0, width(), height(),