Piotr Caban : comctl32: Set updown control value to min or max in out of range case.

Alexandre Julliard julliard at winehq.org
Fri Jan 10 14:44:52 CST 2014


Module: wine
Branch: stable
Commit: 57a8e345fc0d629410ab159089ae65ffdbb1e92b
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=57a8e345fc0d629410ab159089ae65ffdbb1e92b

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Wed Oct 16 16:34:19 2013 +0200

comctl32: Set updown control value to min or max in out of range case.

(cherry picked from commit e6fce2de4ad783cf21318128f950eae2f28a6914)

---

 dlls/comctl32/updown.c |    9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/dlls/comctl32/updown.c b/dlls/comctl32/updown.c
index 390f829..a42b40f 100644
--- a/dlls/comctl32/updown.c
+++ b/dlls/comctl32/updown.c
@@ -150,11 +150,16 @@ static BOOL UPDOWN_OffsetVal(UPDOWN_INFO *infoPtr, int delta)
 		     (infoPtr->MaxVal < infoPtr->MinVal ? -1 : 1) *
 		     (infoPtr->MinVal - infoPtr->MaxVal) +
 		     (delta < 0 ? 1 : -1);
-        } else return FALSE;
+        } if ((infoPtr->MaxVal > infoPtr->MinVal && infoPtr->CurVal+delta > infoPtr->MaxVal)
+                || (infoPtr->MaxVal < infoPtr->MinVal && infoPtr->CurVal+delta < infoPtr->MaxVal)) {
+            delta = infoPtr->MaxVal - infoPtr->CurVal;
+        } else {
+            delta = infoPtr->MinVal - infoPtr->CurVal;
+        }
     }
 
     infoPtr->CurVal += delta;
-    return TRUE;
+    return delta != 0;
 }
 
 /***********************************************************************




More information about the wine-cvs mailing list