From e6fce2de4ad783cf21318128f950eae2f28a6914 Mon Sep 17 00:00:00 2001 From: Piotr Caban Date: Wed, 16 Oct 2013 16:34:19 +0200 Subject: [PATCH] comctl32: Set updown control value to min or max in out of range case. --- 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 390f829f8ba..a42b40f5dda 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; } /***********************************************************************