1f9e5c7
From 082ecb53a9077b6ae01ce66237f48d88bcb0cc00 Mon Sep 17 00:00:00 2001
af45565
From: =?UTF-8?q?Lubo=C5=A1=20Lu=C5=88=C3=A1k?= <l.lunak@suse.cz>
af45565
Date: Thu, 20 Oct 2011 19:05:13 +0200
af45565
Subject: [PATCH] fix horizontal scrollbars with KDE oxygen style (bnc#722918)
af45565
af45565
Apparently there are two style flags for detecting the widget
af45565
is horizontal.
af45565
---
af45565
 vcl/unx/kde4/KDESalGraphics.cxx |   19 +++++++++++++------
af45565
 1 files changed, 13 insertions(+), 6 deletions(-)
af45565
af45565
diff --git a/vcl/unx/kde4/KDESalGraphics.cxx b/vcl/unx/kde4/KDESalGraphics.cxx
1f9e5c7
index 749fbf0..b09fe53 100644
af45565
--- a/vcl/unx/kde4/KDESalGraphics.cxx
af45565
+++ b/vcl/unx/kde4/KDESalGraphics.cxx
af45565
@@ -493,10 +493,9 @@ sal_Bool KDESalGraphics::drawNativeControl( ControlType type, ControlPart part,
af45565
             if (sbVal->mnVisibleSize < sbVal->mnMax)
af45565
                 option.state = QStyle::State_MouseOver;
1f9e5c7
             
af45565
-            //horizontal or vertical
af45565
-            if (part == PART_DRAW_BACKGROUND_VERT)
af45565
-                option.orientation = Qt::Vertical;
af45565
-            else
af45565
+            bool horizontal = ( part == PART_DRAW_BACKGROUND_HORZ ); //horizontal or vertical
af45565
+            option.orientation = horizontal ? Qt::Horizontal : Qt::Vertical;
af45565
+            if( horizontal )
af45565
                 option.state |= QStyle::State_Horizontal;
1f9e5c7
             
af45565
             //setup parameters from the OO values
af45565
@@ -592,7 +591,10 @@ sal_Bool KDESalGraphics::drawNativeControl( ControlType type, ControlPart part,
af45565
         option.maximum     = slVal->mnMax;
af45565
         option.minimum     = slVal->mnMin;
af45565
         option.sliderPosition = option.sliderValue = slVal->mnCur;
af45565
-        option.orientation = (part == PART_TRACK_HORZ_AREA) ? Qt::Horizontal : Qt::Vertical;
af45565
+        bool horizontal = ( part == PART_TRACK_HORZ_AREA ); //horizontal or vertical
af45565
+        option.orientation = horizontal ? Qt::Horizontal : Qt::Vertical;
af45565
+        if( horizontal )
af45565
+            option.state |= QStyle::State_Horizontal;
1f9e5c7
         
af45565
         draw( QStyle::CC_Slider, &option, m_image, vclStateValue2StateFlag(nControlState, value) );
af45565
     }
1f9e5c7
@@ -903,7 +905,10 @@ sal_Bool KDESalGraphics::getNativeControlRegion( ControlType type, ControlPart p
af45565
                 QStyleOptionSlider option;
1f9e5c7
                 OSL_ASSERT( val.getType() == CTRL_SCROLLBAR );
1f9e5c7
                 const ScrollbarValue* sbVal = static_cast<const ScrollbarValue *>(&val;;
af45565
-                option.orientation = ( part == PART_TRACK_HORZ_AREA ) ? Qt::Horizontal : Qt::Vertical;
af45565
+                bool horizontal = ( part == PART_TRACK_HORZ_AREA ); //horizontal or vertical
af45565
+                option.orientation = horizontal ? Qt::Horizontal : Qt::Vertical;
af45565
+                if( horizontal )
af45565
+                    option.state |= QStyle::State_Horizontal;
1f9e5c7
                 option.minimum = sbVal->mnMin;
1f9e5c7
                 option.maximum = sbVal->mnMax;
1f9e5c7
                 option.sliderValue = sbVal->mnCur;
af45565
@@ -971,6 +976,8 @@ sal_Bool KDESalGraphics::hitTestNativeControl( ControlType nType, ControlPart nP
af45565
         rect.moveTo( 0, 0 );
af45565
         QStyleOptionSlider options;
af45565
         options.orientation = bHorizontal ? Qt::Horizontal : Qt::Vertical;
af45565
+        if( bHorizontal )
af45565
+            options.state |= QStyle::State_Horizontal;
af45565
         options.rect = rect;
af45565
         // some random sensible values, since we call this code only for scrollbar buttons,
af45565
         // the slider position does not exactly matter
af45565
-- 
af45565
1.7.6.4
af45565