comctl32/trackbar: Fix reseting to default page size.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
0aead094a5
commit
38e715387d
|
@ -613,6 +613,17 @@ static void test_page_size(void)
|
||||||
r = SendMessageA(hWndTrackbar, TBM_GETPAGESIZE, 0, 0);
|
r = SendMessageA(hWndTrackbar, TBM_GETPAGESIZE, 0, 0);
|
||||||
ok(r == 10, "Unexpected page size %d.\n", r);
|
ok(r == 10, "Unexpected page size %d.\n", r);
|
||||||
|
|
||||||
|
r = SendMessageA(hWndTrackbar, TBM_SETPAGESIZE, 0, -1);
|
||||||
|
ok(r == 10, "Unexpected page size %d.\n", r);
|
||||||
|
|
||||||
|
r = SendMessageA(hWndTrackbar, TBM_GETPAGESIZE, 0, 0);
|
||||||
|
ok(r == 7, "Unexpected page size %d.\n", r);
|
||||||
|
|
||||||
|
SendMessageA(hWndTrackbar, TBM_SETRANGEMAX, 0, 100);
|
||||||
|
|
||||||
|
r = SendMessageA(hWndTrackbar, TBM_GETPAGESIZE, 0, 0);
|
||||||
|
ok(r == 19, "Unexpected page size %d.\n", r);
|
||||||
|
|
||||||
DestroyWindow(hWndTrackbar);
|
DestroyWindow(hWndTrackbar);
|
||||||
|
|
||||||
hWndTrackbar = create_trackbar(defaultstyle, hWndParent);
|
hWndTrackbar = create_trackbar(defaultstyle, hWndParent);
|
||||||
|
|
|
@ -1196,18 +1196,30 @@ TRACKBAR_SetLineSize (TRACKBAR_INFO *infoPtr, LONG lLineSize)
|
||||||
return lTemp;
|
return lTemp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void TRACKBAR_UpdatePageSize(TRACKBAR_INFO *infoPtr)
|
||||||
|
{
|
||||||
|
if (infoPtr->flags & TB_USER_PAGE)
|
||||||
|
return;
|
||||||
|
|
||||||
|
infoPtr->lPageSize = (infoPtr->lRangeMax - infoPtr->lRangeMin) / 5;
|
||||||
|
if (infoPtr->lPageSize == 0) infoPtr->lPageSize = 1;
|
||||||
|
}
|
||||||
|
|
||||||
static inline LONG
|
static inline LONG
|
||||||
TRACKBAR_SetPageSize (TRACKBAR_INFO *infoPtr, LONG lPageSize)
|
TRACKBAR_SetPageSize (TRACKBAR_INFO *infoPtr, LONG lPageSize)
|
||||||
{
|
{
|
||||||
LONG lTemp = infoPtr->lPageSize;
|
LONG lTemp = infoPtr->lPageSize;
|
||||||
|
|
||||||
if (lPageSize != -1)
|
if (lPageSize == -1)
|
||||||
infoPtr->lPageSize = lPageSize;
|
{
|
||||||
|
infoPtr->flags &= ~TB_USER_PAGE;
|
||||||
|
TRACKBAR_UpdatePageSize(infoPtr);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
infoPtr->lPageSize = TB_DEFAULTPAGESIZE;
|
{
|
||||||
|
infoPtr->flags |= TB_USER_PAGE;
|
||||||
infoPtr->flags |= TB_USER_PAGE;
|
infoPtr->lPageSize = lPageSize;
|
||||||
|
}
|
||||||
|
|
||||||
return lTemp;
|
return lTemp;
|
||||||
}
|
}
|
||||||
|
@ -1234,15 +1246,6 @@ TRACKBAR_SetPos (TRACKBAR_INFO *infoPtr, BOOL fPosition, LONG lPosition)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void TRACKBAR_UpdatePageSize(TRACKBAR_INFO *infoPtr)
|
|
||||||
{
|
|
||||||
if (infoPtr->flags & TB_USER_PAGE)
|
|
||||||
return;
|
|
||||||
|
|
||||||
infoPtr->lPageSize = (infoPtr->lRangeMax - infoPtr->lRangeMin) / 5;
|
|
||||||
if (infoPtr->lPageSize == 0) infoPtr->lPageSize = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline LRESULT
|
static inline LRESULT
|
||||||
TRACKBAR_SetRange (TRACKBAR_INFO *infoPtr, BOOL redraw, LONG range)
|
TRACKBAR_SetRange (TRACKBAR_INFO *infoPtr, BOOL redraw, LONG range)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue