Zhiyi Zhang : uxtheme: Return correct WM_ERASEBKGND result from custom dialog procedures.

Alexandre Julliard julliard at winehq.org
Mon Mar 28 15:53:40 CDT 2022


Module: wine
Branch: master
Commit: d987c277c12bc17a77c9d79b92024d449f9a85f9
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=d987c277c12bc17a77c9d79b92024d449f9a85f9

Author: Zhiyi Zhang <zzhang at codeweavers.com>
Date:   Thu Mar 24 17:06:07 2022 +0800

uxtheme: Return correct WM_ERASEBKGND result from custom dialog procedures.

Signed-off-by: Zhiyi Zhang <zzhang at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/uxtheme/dialog.c       | 3 ++-
 dlls/uxtheme/tests/system.c | 3 +--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/dlls/uxtheme/dialog.c b/dlls/uxtheme/dialog.c
index 706d170936e..13943d753bb 100644
--- a/dlls/uxtheme/dialog.c
+++ b/dlls/uxtheme/dialog.c
@@ -129,9 +129,10 @@ LRESULT WINAPI UXTHEME_DefDlgProc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp, BOO
     case WM_ERASEBKGND:
     {
         dlgproc = (WNDPROC)GetWindowLongPtrW(hwnd, DWLP_DLGPROC);
+        SetWindowLongPtrW(hwnd, DWLP_MSGRESULT, 0);
         lr = LOWORD(CallWindowProcW(dlgproc, hwnd, msg, wp, lp));
         if (lr)
-            return lr;
+            return GetWindowLongPtrW(hwnd, DWLP_MSGRESULT);
 
         brush = get_dialog_background_brush(hwnd, TRUE);
         if (!brush)
diff --git a/dlls/uxtheme/tests/system.c b/dlls/uxtheme/tests/system.c
index 1308d54264b..1f04ac879ec 100644
--- a/dlls/uxtheme/tests/system.c
+++ b/dlls/uxtheme/tests/system.c
@@ -1889,8 +1889,7 @@ static void test_EnableThemeDialogTexture(void)
     /* Test that the dialog procedure should take precedence over DefDlgProc() for WM_ERASEBKGND */
     handle_WM_ERASEBKGND = TRUE;
     lr = SendMessageW(dialog, WM_ERASEBKGND, (WPARAM)child_hdc, 0);
-    todo_wine
-    ok(lr == 0, "Expected 0, got %#lx.\n", lr);
+    ok(lr == 0, "Expected 0, got %#Ix.\n", lr);
     handle_WM_ERASEBKGND = FALSE;
 
     /* Test that dialog doesn't have theme handle opened for itself */




More information about the wine-cvs mailing list