Zhiyi Zhang : comctl32/trackbar: Update control parts when style changed.
Alexandre Julliard
julliard at winehq.org
Tue Jun 22 16:17:06 CDT 2021
Module: wine
Branch: master
Commit: 6799667b71c74547a7cb66ad59e81295c561255b
URL: https://source.winehq.org/git/wine.git/?a=commit;h=6799667b71c74547a7cb66ad59e81295c561255b
Author: Zhiyi Zhang <zzhang at 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 at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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;
}
More information about the wine-cvs
mailing list