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

This commit is contained in:
Nikolay Sivov 2009-08-31 23:13:50 +04:00 committed by Alexandre Julliard
parent 0ac2a855ce
commit 7420c0d0de
2 changed files with 13 additions and 1 deletions

View File

@ -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);
}

View File

@ -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);