From c4e0e0a612d5ce7f0b4355b929bef0c535b6f43e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Gr=C3=A4=C3=9Flin?= Date: Thu, 29 Oct 2009 17:03:15 +0000 Subject: [PATCH] Black borders around the tabbox in non-composited setup are ugly. There are still a few pixels in the corner - no idea why svn path=/trunk/KDE/kdebase/workspace/; revision=1042348 --- tabbox/tabboxview.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/tabbox/tabboxview.cpp b/tabbox/tabboxview.cpp index be7cdda57c..81c84cc65c 100644 --- a/tabbox/tabboxview.cpp +++ b/tabbox/tabboxview.cpp @@ -50,7 +50,9 @@ TabBoxView::TabBoxView( QWidget* parent ) { setWindowFlags( Qt::X11BypassWindowManagerHint ); setAttribute( Qt::WA_TranslucentBackground ); - setAutoFillBackground( false ); + QPalette pal = palette(); + pal.setColor(backgroundRole(), Qt::transparent); + setPalette(pal); m_clientModel = new ClientModel( this ); m_desktopModel = new DesktopModel( this ); m_delegate = new ClientItemDelegate( this ); @@ -78,10 +80,13 @@ void TabBoxView::paintEvent(QPaintEvent* e) { // paint the background QPainter painter( this ); + painter.setRenderHint(QPainter::Antialiasing); + painter.setClipRect(e->rect()); painter.save(); painter.setCompositionMode( QPainter::CompositionMode_Source ); - m_frame->resizeFrame( geometry().size() ); + painter.fillRect( rect(), Qt::transparent ); painter.setClipRegion( m_frame->mask() ); + m_frame->resizeFrame( geometry().size() ); m_frame->paintFrame( &painter ); painter.restore(); QWidget::paintEvent(e); @@ -97,7 +102,10 @@ void TabBoxView::updateGeometry() int y = screenRect.y() + screenRect.height() * 0.5 - hint.height() * 0.5; setGeometry( x, y, hint.width(), hint.height() ); - m_frame->resizeFrame( hint ); + qreal left, top, right, bottom; + m_frame->getMargins( left, top, right, bottom ); + m_frame->resizeFrame( hint + QSizeF( left + right, top + bottom ) ); + setMask( m_frame->mask() ); } QSize TabBoxView::sizeHint() const