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

List:       kde-commits
Subject:    KDE/kdelibs/plasma/widgets
From:       Aaron J. Seigo <aseigo () kde ! org>
Date:       2010-06-04 17:20:57
Message-ID: 20100604172057.72275AC8C9 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1134602 by aseigo:

bounds checks
BUG:240724


 M  +17 -3     slider.cpp  


--- trunk/KDE/kdelibs/plasma/widgets/slider.cpp #1134601:1134602
@@ -145,8 +145,7 @@
         style->drawComplexControl(QStyle::CC_Slider, &sliderOpt, painter, slider);
     }
 
-    QRect handleRect =
-        style->subControlRect(QStyle::CC_Slider, &sliderOpt, \
QStyle::SC_SliderHandle, slider); +    QRect handleRect = \
style->subControlRect(QStyle::CC_Slider, &sliderOpt, QStyle::SC_SliderHandle, \
slider);  
     QString handle;
     if (sliderOpt.orientation == Qt::Horizontal) {
@@ -157,6 +156,22 @@
 
     QRect elementRect = d->background->elementRect(handle).toRect();
     elementRect.moveCenter(handleRect.center());
+    if (elementRect.right() > rect().right()) {
+        elementRect.moveRight(rect().right());
+    }
+
+    if (elementRect.left() < rect().left()) {
+        elementRect.moveLeft(rect().left());
+    }
+
+    if (elementRect.top() < rect().top()) {
+        elementRect.moveTop(rect().top());
+    }
+
+    if (elementRect.bottom() > rect().bottom()) {
+        elementRect.moveBottom(rect().bottom());
+    }
+
     if (orientation() == Qt::Vertical) {
         d->focusIndicator->setCustomPrefix("vertical-slider");
     } else {
@@ -164,7 +179,6 @@
     }
     d->focusIndicator->setCustomGeometry(elementRect);
     d->background->paint(painter, elementRect, handle);
-
 }
 
 void Slider::wheelEvent(QGraphicsSceneWheelEvent *event)


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

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