[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/KDE/4.4/kdebase/runtime/kstyles/oxygen
From: Hugo Pereira Da Costa <hugo.pereira () free ! fr>
Date: 2010-04-07 2:06:27
Message-ID: 20100407020627.24F18AC857 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1111919 by hpereiradacosta:
Backport: r1111917
- Fixed bug (blue pixels in top left corner) for MdiSubWindows
- remove MdiSubWindows mask
- use anti-aliased round corners
M +18 -19 oxygen.cpp
--- branches/KDE/4.4/kdebase/runtime/kstyles/oxygen/oxygen.cpp #1111918:1111919
@@ -2222,8 +2222,8 @@
}
p->restore();
- return true;
}
+ return true;
default: return false;
}
@@ -5470,19 +5470,10 @@
return false;
}
- case SH_WindowFrame_Mask:
- {
+ // set no mask for window frame as round corners are rendered antialiased
+ case SH_WindowFrame_Mask: return true;
- const QStyleOptionTitleBar *opt = qstyleoption_cast<const \
QStyleOptionTitleBar *>(option);
- if (!opt) return true;
- if (QStyleHintReturnMask *mask = qstyleoption_cast<QStyleHintReturnMask \
*>(returnData)) {
- if (opt->titleBarState & Qt::WindowMaximized) mask->region = \
option->rect;
- else mask->region = _helper.roundedMask( option->rect );
- }
- return true;
- }
-
case SH_Menu_Mask:
{
@@ -6395,20 +6386,28 @@
}
// mdi subwindow painting
- if( QMdiSubWindow* mdi = qobject_cast<QMdiSubWindow*>( widget ) )
+ if( QMdiSubWindow* sw = qobject_cast<QMdiSubWindow*>( widget ) )
{
+
if (ev->type() == QEvent::Paint)
{
- QPainter p(widget);
- QRect r( static_cast<QPaintEvent*>( ev )->rect() );
+ QPainter p(sw);
+ QRect clip( static_cast<QPaintEvent*>(ev)->rect() );
+ if( sw->isMaximized() ) _helper.renderWindowBackground(&p, clip, sw, \
sw->palette() ); + else {
- if( mdi->isMaximized() ) _helper.renderWindowBackground(&p, r, widget, \
widget->palette() );
- else _helper.renderWindowBackground(&p, r, widget, widget, \
widget->palette(), 0, 50 ); + p.setClipRect( clip );
- // continue with normal painting
- return false;
+ QRect r( sw->rect() );
+ TileSet *tileSet( _helper.roundCorner( sw->palette().color( \
sw->backgroundRole() ) ) ); + tileSet->render( r, &p );
+ p.setClipRegion( _helper.roundedRegion( r.adjusted( 1, 1, -1, -1 ) \
), Qt::IntersectClip ); + _helper.renderWindowBackground(&p, clip, sw, \
sw, sw->palette(), 0, 50 ); +
+ }
+
}
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic