From 43b0dce2032e757b54540baa639b5880a3cfa528 Mon Sep 17 00:00:00 2001 From: Fabian Maurer Date: Thu, 9 Feb 2017 20:37:02 +0100 Subject: [PATCH] user32/tests: Add tests for disabled buttons receiving WM_LBUTTONUP. Signed-off-by: Fabian Maurer Signed-off-by: Alexandre Julliard --- dlls/user32/tests/msg.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c index 1752b686bad..e95d435766a 100644 --- a/dlls/user32/tests/msg.c +++ b/dlls/user32/tests/msg.c @@ -6060,6 +6060,23 @@ static const struct message WmClearStateButtonSeq[] = { WM_APP, sent|wparam|lparam, 0, 0 }, { 0 } }; +static const struct message WmDisableButtonSeq[] = +{ + { WM_LBUTTONDOWN, sent }, + { BM_SETSTATE, sent|defwinproc }, + { WM_CTLCOLORSTATIC, sent|defwinproc|optional }, + { WM_CTLCOLORBTN, sent|optional }, + { WM_LBUTTONUP, sent }, + { BM_SETSTATE, sent|defwinproc }, + { WM_CTLCOLORBTN, sent|defwinproc|optional }, + { WM_CTLCOLORSTATIC, sent|defwinproc|optional }, + { BM_SETCHECK, sent|defwinproc|optional }, + { WM_CTLCOLORBTN, sent|optional }, + { WM_CTLCOLORSTATIC, sent|defwinproc|optional }, + { WM_CAPTURECHANGED, sent|defwinproc }, + { WM_COMMAND, sent }, + { 0 } +}; static const struct message WmClearStateOwnerdrawSeq[] = { { BM_SETSTATE, sent }, @@ -6448,6 +6465,24 @@ static void test_button_messages(void) DeleteObject(hfont2); DestroyWindow(parent); + + /* Test if WM_LBUTTONDOWN and WM_LBUTTONUP to a disabled button leads to a WM_COMMAND for the parent */ + + parent = CreateWindowExA(0, "TestWindowClass", "Test overlapped", WS_OVERLAPPEDWINDOW | WS_VISIBLE, + 100, 100, 200, 200, 0, 0, 0, NULL); + ok (hwnd != 0, "Failed to create overlapped window\n"); + + hwnd = CreateWindowExA(0, "my_button_class", "test", BS_DEFPUSHBUTTON | WS_VISIBLE | WS_CHILD, + 0, 0, 50, 14, parent, 0, 0, NULL); + + EnableWindow(hwnd, FALSE); + flush_sequence(); + SendMessageA(hwnd, WM_LBUTTONDOWN, MK_LBUTTON, 0); + SendMessageA(hwnd, WM_LBUTTONUP, 0, 0); + ok_sequence(WmDisableButtonSeq, "Mouseclick on a disabled button", FALSE); + + DestroyWindow(hwnd); + DestroyWindow(parent); } /****************** static message test *************************/ -- 2.11.4.GIT