Nikolay Sivov : comctl32/toolbar: Fix TB_SETDRAWTEXTFLAGS handler.
Alexandre Julliard
julliard at winehq.org
Thu Jan 26 14:53:13 CST 2017
Module: wine
Branch: master
Commit: 970029bb9ba33928bb20c5e397d47f023e4a6501
URL: http://source.winehq.org/git/wine.git/?a=commit;h=970029bb9ba33928bb20c5e397d47f023e4a6501
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Wed Jan 25 22:50:54 2017 +0300
comctl32/toolbar: Fix TB_SETDRAWTEXTFLAGS handler.
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/comctl32/tests/toolbar.c | 42 ++++++++++++++++++++++++++++++++++++++++++
dlls/comctl32/toolbar.c | 13 ++++++-------
2 files changed, 48 insertions(+), 7 deletions(-)
diff --git a/dlls/comctl32/tests/toolbar.c b/dlls/comctl32/tests/toolbar.c
index f2f7924..a8bcd40 100644
--- a/dlls/comctl32/tests/toolbar.c
+++ b/dlls/comctl32/tests/toolbar.c
@@ -2367,6 +2367,47 @@ static void test_save(void)
RegCloseKey( key );
}
+static void test_drawtext_flags(void)
+{
+ HWND hwnd = NULL;
+ UINT flags;
+
+ rebuild_toolbar(&hwnd);
+
+ flags = SendMessageA(hwnd, TB_SETDRAWTEXTFLAGS, 0, 0);
+todo_wine
+ ok(flags == 0, "Unexpected draw text flags %#x\n", flags);
+
+ /* zero mask, flags are retained */
+ flags = SendMessageA(hwnd, TB_SETDRAWTEXTFLAGS, 0, DT_BOTTOM);
+todo_wine
+ ok(flags == 0, "Unexpected draw text flags %#x\n", flags);
+ ok(!(flags & DT_BOTTOM), "Unexpected DT_BOTTOM style\n");
+
+ flags = SendMessageA(hwnd, TB_SETDRAWTEXTFLAGS, 0, 0);
+todo_wine
+ ok(flags == 0, "Unexpected draw text flags %#x\n", flags);
+ ok(!(flags & DT_BOTTOM), "Unexpected DT_BOTTOM style\n");
+
+ /* set/remove */
+ flags = SendMessageA(hwnd, TB_SETDRAWTEXTFLAGS, DT_BOTTOM, DT_BOTTOM);
+todo_wine
+ ok(flags == 0, "Unexpected draw text flags %#x\n", flags);
+ ok(!(flags & DT_BOTTOM), "Unexpected DT_BOTTOM style\n");
+
+ flags = SendMessageA(hwnd, TB_SETDRAWTEXTFLAGS, DT_BOTTOM, 0);
+todo_wine
+ ok(flags == DT_BOTTOM, "Unexpected draw text flags %#x\n", flags);
+ ok(flags & DT_BOTTOM, "Expected DT_BOTTOM style, %#x\n", flags);
+
+ flags = SendMessageA(hwnd, TB_SETDRAWTEXTFLAGS, DT_BOTTOM, 0);
+todo_wine
+ ok(flags == 0, "Unexpected draw text flags %#x\n", flags);
+ ok(!(flags & DT_BOTTOM), "Unexpected DT_BOTTOM style\n");
+
+ DestroyWindow(hwnd);
+}
+
START_TEST(toolbar)
{
WNDCLASSA wc;
@@ -2411,6 +2452,7 @@ START_TEST(toolbar)
test_TB_GET_SET_EXTENDEDSTYLE();
test_noresize();
test_save();
+ test_drawtext_flags();
PostQuitMessage(0);
while(GetMessageA(&msg,0,0,0)) {
diff --git a/dlls/comctl32/toolbar.c b/dlls/comctl32/toolbar.c
index 0c545a2..784745c 100644
--- a/dlls/comctl32/toolbar.c
+++ b/dlls/comctl32/toolbar.c
@@ -4546,17 +4546,16 @@ TOOLBAR_SetDisabledImageList (TOOLBAR_INFO *infoPtr, WPARAM wParam, HIMAGELIST h
static LRESULT
-TOOLBAR_SetDrawTextFlags (TOOLBAR_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
+TOOLBAR_SetDrawTextFlags (TOOLBAR_INFO *infoPtr, DWORD mask, DWORD flags)
{
- DWORD dwTemp;
+ DWORD old_flags;
- TRACE("hwnd = %p, dwMask = 0x%08x, dwDTFlags = 0x%08x\n", infoPtr->hwndSelf, (DWORD)wParam, (DWORD)lParam);
+ TRACE("hwnd = %p, mask = 0x%08x, flags = 0x%08x\n", infoPtr->hwndSelf, mask, flags);
- dwTemp = infoPtr->dwDTFlags;
- infoPtr->dwDTFlags =
- (infoPtr->dwDTFlags & (DWORD)wParam) | (DWORD)lParam;
+ old_flags = infoPtr->dwDTFlags;
+ infoPtr->dwDTFlags = (old_flags & ~mask) | (flags & mask);
- return (LRESULT)dwTemp;
+ return (LRESULT)old_flags;
}
/* This function differs a bit from what MSDN says it does:
More information about the wine-cvs
mailing list