[PATCH 1/2] comctl32: Move the style change code to the TB_SETSTYLE handler.
Huw Davies
huw at codeweavers.com
Tue Apr 28 05:32:00 CDT 2015
---
dlls/comctl32/toolbar.c | 46 ++++++++++++++++++++++------------------------
1 file changed, 22 insertions(+), 24 deletions(-)
diff --git a/dlls/comctl32/toolbar.c b/dlls/comctl32/toolbar.c
index 83cb674..695e450 100644
--- a/dlls/comctl32/toolbar.c
+++ b/dlls/comctl32/toolbar.c
@@ -4922,7 +4922,28 @@ TOOLBAR_SetState (TOOLBAR_INFO *infoPtr, INT Id, LPARAM lParam)
static LRESULT
TOOLBAR_SetStyle (TOOLBAR_INFO *infoPtr, DWORD style)
{
+ DWORD dwOldStyle = infoPtr->dwStyle;
+
+ TRACE("new style 0x%08x\n", style);
+
+ if (style & TBSTYLE_LIST)
+ infoPtr->dwDTFlags = DT_LEFT | DT_VCENTER | DT_SINGLELINE | DT_END_ELLIPSIS;
+ else
+ infoPtr->dwDTFlags = DT_CENTER | DT_END_ELLIPSIS;
+
infoPtr->dwStyle = style;
+ TOOLBAR_CheckStyle(infoPtr);
+
+ if ((dwOldStyle ^ style) & (TBSTYLE_WRAPABLE | CCS_VERT))
+ TOOLBAR_LayoutToolbar(infoPtr);
+
+ /* only resize if one of the CCS_* styles was changed */
+ if ((dwOldStyle ^ style) & COMMON_STYLES)
+ {
+ TOOLBAR_AutoSize(infoPtr);
+ InvalidateRect(infoPtr->hwndSelf, NULL, TRUE);
+ }
+
return 0;
}
@@ -6337,30 +6358,7 @@ static LRESULT
TOOLBAR_StyleChanged (TOOLBAR_INFO *infoPtr, INT nType, const STYLESTRUCT *lpStyle)
{
if (nType == GWL_STYLE)
- {
- DWORD dwOldStyle = infoPtr->dwStyle;
-
- if (lpStyle->styleNew & TBSTYLE_LIST)
- infoPtr->dwDTFlags = DT_LEFT | DT_VCENTER | DT_SINGLELINE | DT_END_ELLIPSIS;
- else
- infoPtr->dwDTFlags = DT_CENTER | DT_END_ELLIPSIS;
-
- TRACE("new style 0x%08x\n", lpStyle->styleNew);
-
- infoPtr->dwStyle = lpStyle->styleNew;
- TOOLBAR_CheckStyle (infoPtr);
-
- if ((dwOldStyle ^ lpStyle->styleNew) & (TBSTYLE_WRAPABLE | CCS_VERT))
- TOOLBAR_LayoutToolbar(infoPtr);
-
- /* only resize if one of the CCS_* styles was changed */
- if ((dwOldStyle ^ lpStyle->styleNew) & COMMON_STYLES)
- {
- TOOLBAR_AutoSize (infoPtr);
-
- InvalidateRect(infoPtr->hwndSelf, NULL, TRUE);
- }
- }
+ return TOOLBAR_SetStyle(infoPtr, lpStyle->styleNew);
return 0;
}
--
1.8.0
More information about the wine-patches
mailing list