[Libreoffice-commits] .: vcl/unx

Lubos Lunak llunak at kemper.freedesktop.org
Thu Oct 20 10:08:24 PDT 2011


 vcl/unx/kde4/KDESalGraphics.cxx |   19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

New commits:
commit 936d19e606cbf29d41bff42db559a01f5deb240c
Author: Luboš Luňák <l.lunak at suse.cz>
Date:   Thu Oct 20 19:05:13 2011 +0200

    fix horizontal scrollbars with KDE oxygen style (bnc#722918)
    
    Apparently there are two style flags for detecting the widget
    is horizontal.

diff --git a/vcl/unx/kde4/KDESalGraphics.cxx b/vcl/unx/kde4/KDESalGraphics.cxx
index 5dbe491..60cd4ed 100644
--- a/vcl/unx/kde4/KDESalGraphics.cxx
+++ b/vcl/unx/kde4/KDESalGraphics.cxx
@@ -493,10 +493,9 @@ sal_Bool KDESalGraphics::drawNativeControl( ControlType type, ControlPart part,
             if (sbVal->mnVisibleSize < sbVal->mnMax)
                 option.state = QStyle::State_MouseOver;
 
-            //horizontal or vertical
-            if (part == PART_DRAW_BACKGROUND_VERT)
-                option.orientation = Qt::Vertical;
-            else
+            bool horizontal = ( part == PART_DRAW_BACKGROUND_HORZ ); //horizontal or vertical
+            option.orientation = horizontal ? Qt::Horizontal : Qt::Vertical;
+            if( horizontal )
                 option.state |= QStyle::State_Horizontal;
 
             //setup parameters from the OO values
@@ -592,7 +591,10 @@ sal_Bool KDESalGraphics::drawNativeControl( ControlType type, ControlPart part,
         option.maximum     = slVal->mnMax;
         option.minimum     = slVal->mnMin;
         option.sliderPosition = option.sliderValue = slVal->mnCur;
-        option.orientation = (part == PART_TRACK_HORZ_AREA) ? Qt::Horizontal : Qt::Vertical;
+        bool horizontal = ( part == PART_TRACK_HORZ_AREA ); //horizontal or vertical
+        option.orientation = horizontal ? Qt::Horizontal : Qt::Vertical;
+        if( horizontal )
+            option.state |= QStyle::State_Horizontal;
 
         draw( QStyle::CC_Slider, &option, m_image, vclStateValue2StateFlag(nControlState, value) );
     }
@@ -901,7 +903,10 @@ sal_Bool KDESalGraphics::getNativeControlRegion( ControlType type, ControlPart p
             if( part == PART_TRACK_VERT_AREA || part == PART_TRACK_HORZ_AREA )
             {
                 QStyleOptionSlider option;
-                option.orientation = ( part == PART_TRACK_HORZ_AREA ) ? Qt::Horizontal : Qt::Vertical;
+                bool horizontal = ( part == PART_TRACK_HORZ_AREA ); //horizontal or vertical
+                option.orientation = horizontal ? Qt::Horizontal : Qt::Vertical;
+                if( horizontal )
+                    option.state |= QStyle::State_Horizontal;
                 // getNativeControlRegion usually gets ImplControlValue as 'val' (i.e. not the proper
                 // subclass), so use random sensible values (doesn't matter anyway, as the wanted
                 // geometry here depends only on button sizes)
@@ -971,6 +976,8 @@ sal_Bool KDESalGraphics::hitTestNativeControl( ControlType nType, ControlPart nP
         rect.moveTo( 0, 0 );
         QStyleOptionSlider options;
         options.orientation = bHorizontal ? Qt::Horizontal : Qt::Vertical;
+        if( bHorizontal )
+            options.state |= QStyle::State_Horizontal;
         options.rect = rect;
         // some random sensible values, since we call this code only for scrollbar buttons,
         // the slider position does not exactly matter


More information about the Libreoffice-commits mailing list