[3/4] comctl32/listview: Test WM_ERASEBKGND forwarding to parent on CL_NONE background
Nikolay Sivov
bunglehead at gmail.com
Sat May 2 18:20:05 CDT 2009
Changelog:
- Test WM_ERASEBKGND forwarding to parent on CL_NONE background
>From 718b77eee72da9dca13c3a23b469787021537464 Mon Sep 17 00:00:00 2001
From: Nikolay Sivov <bunglehead at gmail.com>
Date: Sun, 3 May 2009 03:12:50 +0400
Subject: Test WM_ERASEBKGND forwarding to parent on CL_NONE background
---
dlls/comctl32/tests/listview.c | 47 +++++++++++++++++++++++++++++++++------
1 files changed, 39 insertions(+), 8 deletions(-)
diff --git a/dlls/comctl32/tests/listview.c b/dlls/comctl32/tests/listview.c
index 6b575dc..42bb189 100644
--- a/dlls/comctl32/tests/listview.c
+++ b/dlls/comctl32/tests/listview.c
@@ -26,9 +26,10 @@
#include "wine/test.h"
#include "msg.h"
-#define PARENT_SEQ_INDEX 0
-#define LISTVIEW_SEQ_INDEX 1
-#define NUM_MSG_SEQUENCES 2
+#define PARENT_SEQ_INDEX 0
+#define PARENT_FULL_SEQ_INDEX 1
+#define LISTVIEW_SEQ_INDEX 2
+#define NUM_MSG_SEQUENCES 3
#define LISTVIEW_ID 0
#define HEADER_ID 1
@@ -162,6 +163,11 @@ static const struct message empty_seq[] = {
{ 0 }
};
+static const struct message forward_erasebkgnd_parent_seq[] = {
+ { WM_ERASEBKGND, sent },
+ { 0 }
+};
+
struct subclass_info
{
WNDPROC oldproc;
@@ -173,6 +179,12 @@ static LRESULT WINAPI parent_wnd_proc(HWND hwnd, UINT message, WPARAM wParam, LP
LRESULT ret;
struct message msg;
+ msg.message = message;
+ msg.flags = sent|wparam|lparam;
+ if (defwndproc_counter) msg.flags |= defwinproc;
+ msg.wParam = wParam;
+ msg.lParam = lParam;
+
/* log system messages, except for painting */
if (message < WM_USER &&
message != WM_PAINT &&
@@ -185,13 +197,9 @@ static LRESULT WINAPI parent_wnd_proc(HWND hwnd, UINT message, WPARAM wParam, LP
{
trace("parent: %p, %04x, %08lx, %08lx\n", hwnd, message, wParam, lParam);
- msg.message = message;
- msg.flags = sent|wparam|lparam;
- if (defwndproc_counter) msg.flags |= defwinproc;
- msg.wParam = wParam;
- msg.lParam = lParam;
add_message(sequences, PARENT_SEQ_INDEX, &msg);
}
+ add_message(sequences, PARENT_FULL_SEQ_INDEX, &msg);
defwndproc_counter++;
ret = DefWindowProcA(hwnd, message, wParam, lParam);
@@ -1058,6 +1066,8 @@ static void test_create(void)
static void test_redraw(void)
{
HWND hwnd, hwndheader;
+ HDC hdc;
+ BOOL res;
hwnd = create_listview_control(0);
hwndheader = subclass_header(hwnd);
@@ -1071,6 +1081,27 @@ static void test_redraw(void)
flush_sequences(sequences, NUM_MSG_SEQUENCES);
+ /* forward WM_ERASEBKGND to parent on CLR_NONE background color */
+ res = ListView_SetBkColor(hwnd, CLR_NONE);
+ expect(TRUE, res);
+
+ hdc = GetWindowDC(hwndparent);
+
+ flush_sequences(sequences, NUM_MSG_SEQUENCES);
+ SendMessageA(hwnd, WM_ERASEBKGND, (WPARAM)hdc, 0);
+ ok_sequence(sequences, PARENT_FULL_SEQ_INDEX, forward_erasebkgnd_parent_seq,
+ "forward WM_ERASEBKGND on CLR_NONE", TRUE);
+
+ res = ListView_SetBkColor(hwnd, CLR_DEFAULT);
+ expect(TRUE, res);
+
+ flush_sequences(sequences, NUM_MSG_SEQUENCES);
+ SendMessageA(hwnd, WM_ERASEBKGND, (WPARAM)hdc, 0);
+ ok_sequence(sequences, PARENT_FULL_SEQ_INDEX, empty_seq,
+ "don't forward WM_ERASEBKGND on non-CLR_NONE", FALSE);
+
+ ReleaseDC(hwndparent, hdc);
+
DestroyWindow(hwnd);
}
--
1.5.6.5
More information about the wine-patches
mailing list