[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