[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 1:07:32
Message-ID: 20100407010732.B1116AC857 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1111908 by hpereiradacosta:

backport r1111900, r1111907
Fixed window background for QMdiSubWindow. (was transparent since r1081687, and flat \
before that). Use normal RenderWindowBackground.
Also: use proper rect from QPaintEvent to render normal Window background.
fixed background reference in maximized QMdiSubWindows


 M  +25 -1     oxygen.cpp  


--- branches/KDE/4.4/kdebase/runtime/kstyles/oxygen/oxygen.cpp #1111907:1111908
@@ -40,6 +40,7 @@
 #include <QtGui/QGraphicsView>
 #include <QtGui/QLineEdit>
 #include <QtGui/QMainWindow>
+#include <QtGui/QMdiSubWindow>
 #include <QtGui/QPaintEvent>
 #include <QtGui/QProgressBar>
 #include <QtGui/QPushButton>
@@ -3769,6 +3770,11 @@
         widget->setContentsMargins(3,3,3,3);
         widget->installEventFilter(this);
 
+    } else if( qobject_cast<QMdiSubWindow*>(widget) ) {
+
+        widget->setAutoFillBackground( false );
+        widget->installEventFilter( this );
+
     } else if (qobject_cast<QToolBox*>(widget)) {
 
         widget->setBackgroundRole(QPalette::NoRole);
@@ -6383,11 +6389,29 @@
             if(widget->testAttribute(Qt::WA_StyledBackground) && \
!widget->testAttribute(Qt::WA_NoSystemBackground))  {
                 QPainter p(widget);
-                _helper.renderWindowBackground(&p, widget->rect(), \
widget,widget->window()->palette()); +                \
_helper.renderWindowBackground(&p, static_cast<QPaintEvent*>(ev)->rect(), \
widget,widget->window()->palette());  }
         }
     }
 
+    // mdi subwindow painting
+    if( QMdiSubWindow* mdi = qobject_cast<QMdiSubWindow*>( widget ) )
+    {
+        if (ev->type() == QEvent::Paint)
+        {
+
+            QPainter p(widget);
+            QRect r( static_cast<QPaintEvent*>( ev )->rect() );
+
+            if( mdi->isMaximized() ) _helper.renderWindowBackground(&p, r, widget, \
widget->palette() ); +            else _helper.renderWindowBackground(&p, r, widget, \
widget, widget->palette(), 0, 50 ); +
+            // continue with normal painting
+            return false;
+
+        }
+
+    }
     // dock widgets
     if (QDockWidget*dw = qobject_cast<QDockWidget*>(obj))
     {


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic