[PATCH] comctl32: toolbar: unlike in listview, TB_SETEXTENDEDSTYLE takes the actual style, not a mask

Mikołaj Zalewski mikolaj at zalewski.pl
Sun Feb 1 06:07:08 CST 2009


---
 dlls/comctl32/tests/toolbar.c |   12 ++++++++++++
 dlls/comctl32/toolbar.c       |    9 ++++-----
 2 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/dlls/comctl32/tests/toolbar.c b/dlls/comctl32/tests/toolbar.c
index 2dcf643..b0fbe02 100644
--- a/dlls/comctl32/tests/toolbar.c
+++ b/dlls/comctl32/tests/toolbar.c
@@ -1030,6 +1030,7 @@ static void test_recalc()
     HWND hToolbar;
     TBBUTTONINFO bi;
     CHAR test[] = "Test";
+    int i;
 
     /* Like TB_ADDBUTTONS tested in test_sized, inserting a button without text
      * results in a relayout, while adding one with text forces a recalc */
@@ -1049,6 +1050,17 @@ static void test_recalc()
     SendMessage(hToolbar, TB_SETBUTTONINFO, 1, (LPARAM)&bi);
     ok(!did_recalc(hToolbar), "Unexpected recalc - setting a button text\n");
 
+    for (i = 0; i < 32; i++)
+    {
+        if (i == 1 || i == 3)  /* an undoc style and TBSTYLE_EX_MIXEDBUTTONS */
+            continue;
+        prepare_recalc_test(&hToolbar);
+        expect(0, (int)SendMessage(hToolbar, TB_GETEXTENDEDSTYLE, 0, 0));
+        SendMessage(hToolbar, TB_SETEXTENDEDSTYLE, 0, (1 << i));
+        SendMessage(hToolbar, TB_SETEXTENDEDSTYLE, 0, 0);
+        expect(0, (int)SendMessage(hToolbar, TB_GETEXTENDEDSTYLE, 0, 0));
+    }
+
     DestroyWindow(hToolbar);
 }
 
diff --git a/dlls/comctl32/toolbar.c b/dlls/comctl32/toolbar.c
index cec2116..e1a5404 100644
--- a/dlls/comctl32/toolbar.c
+++ b/dlls/comctl32/toolbar.c
@@ -4648,11 +4648,10 @@ static LRESULT
 TOOLBAR_SetExtendedStyle (HWND hwnd, WPARAM wParam, LPARAM lParam)
 {
     TOOLBAR_INFO *infoPtr = TOOLBAR_GetInfoPtr (hwnd);
-    DWORD dwTemp;
+    DWORD dwOldStyle;
 
-    dwTemp = infoPtr->dwExStyle;
-    infoPtr->dwExStyle &= ~wParam;
-    infoPtr->dwExStyle |= (DWORD)lParam;
+    dwOldStyle = infoPtr->dwExStyle;
+    infoPtr->dwExStyle = (DWORD)lParam;
 
     TRACE("new style 0x%08x\n", infoPtr->dwExStyle);
 
@@ -4666,7 +4665,7 @@ TOOLBAR_SetExtendedStyle (HWND hwnd, WPARAM wParam, LPARAM lParam)
 
     InvalidateRect(hwnd, NULL, TRUE);
 
-    return (LRESULT)dwTemp;
+    return (LRESULT)dwOldStyle;
 }
 
 
-- 
1.5.4


--------------070803090306050103050507--



More information about the wine-patches mailing list