Zhiyi Zhang : comctl32/trackbar: Update control parts when style changed.
Module: wine Branch: master Commit: 6799667b71c74547a7cb66ad59e81295c561255b URL: https://source.winehq.org/git/wine.git/?a=commit;h=6799667b71c74547a7cb66ad5... Author: Zhiyi Zhang <zzhang(a)codeweavers.com> Date: Tue Jun 22 16:21:22 2021 +0800 comctl32/trackbar: Update control parts when style changed. Fix trackbar draws incorrectly after changing style. For example, adding TBS_BOTH should cause a total repaint. Signed-off-by: Zhiyi Zhang <zzhang(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/comctl32/trackbar.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/dlls/comctl32/trackbar.c b/dlls/comctl32/trackbar.c index 1859cf0f516..ce6a20c6c63 100644 --- a/dlls/comctl32/trackbar.c +++ b/dlls/comctl32/trackbar.c @@ -1502,6 +1502,19 @@ TRACKBAR_InitializeThumb (TRACKBAR_INFO *infoPtr) return 0; } +static void TRACKBAR_RecalculateAll (TRACKBAR_INFO *infoPtr) +{ + if (infoPtr->dwStyle & TBS_FIXEDLENGTH) + { + TRACKBAR_CalcChannel(infoPtr); + TRACKBAR_UpdateThumb(infoPtr); + } + else + { + TRACKBAR_InitializeThumb(infoPtr); + } + TRACKBAR_AlignBuddies(infoPtr); +} static LRESULT TRACKBAR_Create (HWND hwnd, const CREATESTRUCTW *lpcs) @@ -1677,14 +1690,7 @@ TRACKBAR_SetFocus (TRACKBAR_INFO *infoPtr) static LRESULT TRACKBAR_Size (TRACKBAR_INFO *infoPtr) { - if (infoPtr->dwStyle & TBS_FIXEDLENGTH) - { - TRACKBAR_CalcChannel(infoPtr); - TRACKBAR_UpdateThumb(infoPtr); - } - else - TRACKBAR_InitializeThumb(infoPtr); - TRACKBAR_AlignBuddies (infoPtr); + TRACKBAR_RecalculateAll(infoPtr); TRACKBAR_InvalidateAll(infoPtr); return 0; @@ -1697,7 +1703,8 @@ TRACKBAR_StyleChanged (TRACKBAR_INFO *infoPtr, WPARAM wStyleType, if (wStyleType != GWL_STYLE) return 0; infoPtr->dwStyle = lpss->styleNew; - + TRACKBAR_RecalculateAll(infoPtr); + TRACKBAR_InvalidateAll(infoPtr); return 0; }
participants (1)
-
Alexandre Julliard