Nikolay Sivov : comctl32/listview: Call default handler for WM_PAINT disabled by WM_SETREDRAW.

Alexandre Julliard julliard at winehq.org
Tue Sep 1 11:05:48 CDT 2009


Module: wine
Branch: master
Commit: 7420c0d0dea884c3338bd8af4025c66d4b8a6f02
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=7420c0d0dea884c3338bd8af4025c66d4b8a6f02

Author: Nikolay Sivov <bunglehead at gmail.com>
Date:   Mon Aug 31 23:13:50 2009 +0400

comctl32/listview: Call default handler for WM_PAINT disabled by WM_SETREDRAW.

---

 dlls/comctl32/listview.c       |    3 ++-
 dlls/comctl32/tests/listview.c |   11 +++++++++++
 2 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/dlls/comctl32/listview.c b/dlls/comctl32/listview.c
index 36e7b7e..afe7116 100644
--- a/dlls/comctl32/listview.c
+++ b/dlls/comctl32/listview.c
@@ -9781,7 +9781,8 @@ static inline LRESULT LISTVIEW_WMPaint(LISTVIEW_INFO *infoPtr, HDC hdc)
 {
     TRACE("(hdc=%p)\n", hdc);
 
-    if (!is_redrawing(infoPtr)) return 0;
+    if (!is_redrawing(infoPtr))
+        return DefWindowProcW (infoPtr->hwndSelf, WM_PAINT, (WPARAM)hdc, 0);
 
     return LISTVIEW_Paint(infoPtr, hdc);
 }
diff --git a/dlls/comctl32/tests/listview.c b/dlls/comctl32/tests/listview.c
index b6a368b..244f3a5 100644
--- a/dlls/comctl32/tests/listview.c
+++ b/dlls/comctl32/tests/listview.c
@@ -2770,6 +2770,7 @@ static void test_setredraw(void)
     DWORD_PTR style;
     DWORD ret;
     HDC hdc;
+    RECT rect;
 
     hwnd = create_listview_control(LVS_OWNERDATA);
     ok(hwnd != NULL, "failed to create a listview window\n");
@@ -2790,6 +2791,16 @@ static void test_setredraw(void)
     ret = SendMessage(hwnd, WM_SETREDRAW, TRUE, 0);
     expect(0, ret);
 
+    /* check update rect after redrawing */
+    ret = SendMessage(hwnd, WM_SETREDRAW, FALSE, 0);
+    expect(0, ret);
+    InvalidateRect(hwnd, NULL, FALSE);
+    RedrawWindow(hwnd, NULL, NULL, RDW_UPDATENOW);
+    rect.right = rect.bottom = 1;
+    GetUpdateRect(hwnd, &rect, FALSE);
+    expect(0, rect.right);
+    expect(0, rect.bottom);
+
     /* WM_ERASEBKGND */
     hdc = GetWindowDC(hwndparent);
     ret = SendMessage(hwnd, WM_ERASEBKGND, (WPARAM)hdc, 0);




More information about the wine-cvs mailing list