[v2 PATCH 3/4] comctl32/combo: Properly handle WM_CTLCOLOR* messages.

Nikolay Sivov nsivov at codeweavers.com
Mon Nov 4 01:30:28 CST 2019


From: Fabian Maurer <dark.shadow4 at web.de>

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46417
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
 dlls/comctl32/combo.c       | 10 ++++++++++
 dlls/comctl32/tests/combo.c |  3 ---
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/dlls/comctl32/combo.c b/dlls/comctl32/combo.c
index 8a52a0bdc0..599817aed4 100644
--- a/dlls/comctl32/combo.c
+++ b/dlls/comctl32/combo.c
@@ -1963,6 +1963,16 @@ static LRESULT CALLBACK COMBO_WindowProc( HWND hwnd, UINT message, WPARAM wParam
         if (GET_WHEEL_DELTA_WPARAM(wParam) < 0) return SendMessageW(hwnd, WM_KEYDOWN, VK_DOWN, 0);
         return TRUE;
 
+    case WM_CTLCOLOR:
+    case WM_CTLCOLORMSGBOX:
+    case WM_CTLCOLOREDIT:
+    case WM_CTLCOLORLISTBOX:
+    case WM_CTLCOLORBTN:
+    case WM_CTLCOLORDLG:
+    case WM_CTLCOLORSCROLLBAR:
+    case WM_CTLCOLORSTATIC:
+        return SendMessageW(lphc->owner, message, wParam, lParam);
+
     /* Combo messages */
     case CB_ADDSTRING:
         if (lphc->dwStyle & CBS_LOWERCASE)
diff --git a/dlls/comctl32/tests/combo.c b/dlls/comctl32/tests/combo.c
index be4ee53c22..4757fa3cc6 100644
--- a/dlls/comctl32/tests/combo.c
+++ b/dlls/comctl32/tests/combo.c
@@ -1306,7 +1306,6 @@ static void test_combo_ctlcolor(void)
     for (i = 0; i < ARRAY_SIZE(messages); ++i)
     {
         brush = (HBRUSH)SendMessageA(combo, messages[i], 0, (LPARAM)info.hwndItem);
-    todo_wine
         ok(brush == brush_red, "%u: unexpected brush %p, expected got %p.\n", i, brush, brush_red);
     }
 
@@ -1317,7 +1316,6 @@ static void test_combo_ctlcolor(void)
     for (i = 0; i < ARRAY_SIZE(messages); ++i)
     {
         brush = (HBRUSH)SendMessageA(combo, messages[i], 0, (LPARAM)info.hwndItem);
-    todo_wine
         ok(!brush, "%u: unexpected brush %p.\n", i, brush);
     }
 
@@ -1344,7 +1342,6 @@ static void test_combo_ctlcolor(void)
     for (i = 0; i < ARRAY_SIZE(messages); ++i)
     {
         brush = (HBRUSH)SendMessageA(combo, messages[i], 0, (LPARAM)info.hwndItem);
-    todo_wine
         ok(!brush, "%u: unexpected brush %p.\n", i, brush);
     }
 
-- 
2.24.0.rc1




More information about the wine-devel mailing list