comctl32: header[1/2]: invalidate the control after a WM_SETREDRAW with wParam == TRUE

Mikołaj Zalewski mikolaj at zalewski.pl
Wed Oct 11 13:55:31 CDT 2006


MagicISO expects it.
-------------- next part --------------
diff --git a/dlls/comctl32/header.c b/dlls/comctl32/header.c
index 63f91d8..681b700 100644
--- a/dlls/comctl32/header.c
+++ b/dlls/comctl32/header.c
@@ -1945,6 +1945,18 @@ HEADER_SetFont (HWND hwnd, WPARAM wParam
     return 0;
 }
 
+static LRESULT HEADER_SetRedraw(HWND hwnd, WPARAM wParam, LPARAM lParam)
+{
+    /* ignoring the InvalidateRect calls is handled by user32. But some apps expect
+     * that we invalidate the header and this has to be done manually  */
+    LRESULT ret;
+
+    ret = DefWindowProcW(hwnd, WM_SETREDRAW, wParam, lParam);
+    if (wParam)
+        InvalidateRect(hwnd, NULL, TRUE);
+    return ret;
+}
+
 /* Update the theme handle after a theme change */
 static LRESULT HEADER_ThemeChanged(HWND hwnd)
 {
@@ -2081,6 +2093,9 @@ HEADER_WindowProc (HWND hwnd, UINT msg, 
         case WM_SETFONT:
             return HEADER_SetFont (hwnd, wParam, lParam);
 
+        case WM_SETREDRAW:
+            return HEADER_SetRedraw(hwnd, wParam, lParam);
+
         default:
             if ((msg >= WM_USER) && (msg < WM_APP))
 		ERR("unknown msg %04x wp=%04x lp=%08lx\n",
-- 
1.4.2.3


More information about the wine-patches mailing list