[PATCH 7/7] user32/tests: Test WM_SYSCOMMAND(SC_MINIMIZE) on an unminimizable window.
Stefan Dösinger
stefan at codeweavers.com
Mon Oct 6 06:43:02 CDT 2014
---
dlls/user32/tests/msg.c | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)
diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c
index 3a81ca7..2b9ff28 100644
--- a/dlls/user32/tests/msg.c
+++ b/dlls/user32/tests/msg.c
@@ -883,6 +883,24 @@ static const struct message WmMinUnminimizablePopupSeq[] = {
{ WM_GETTEXT, sent|optional },
{ 0 }
};
+/* WM_SYSCOMMAND(SC_MINIMIZE) for an unminimizable popup window */
+static const struct message WmSCMinUnminimizablePopupSeq[] = {
+ { WM_SYSCOMMAND, sent|wparam, SC_MINIMIZE },
+ { HCBT_SYSCOMMAND, hook },
+ { HCBT_MINMAX, hook },
+ { HCBT_SETFOCUS, hook|optional },
+ { WM_KILLFOCUS, sent|optional|defwinproc },
+ { WM_GETTEXT, sent|optional|defwinproc },
+ { WM_WINDOWPOSCHANGING, sent|defwinproc }, /* Windows versions disagree about SWP_NOACTIVATE */
+ { WM_NCCALCSIZE, sent|wparam|defwinproc, TRUE },
+ { WM_NCPAINT, sent|optional|wparam|defwinproc, 1 },
+ { WM_GETTEXT, sent|optional|defwinproc },
+ { WM_WINDOWPOSCHANGED, sent|defwinproc },
+ { WM_MOVE, sent|defwinproc },
+ { WM_SIZE, sent|defwinproc|wparam, SIZE_MINIMIZED },
+ { WM_GETTEXT, sent|optional|defwinproc },
+ { 0 }
+};
/* CreateWindow (for a child popup window, not initially visible) */
static const struct message WmCreateChildPopupSeq[] = {
{ HCBT_CREATEWND, hook },
@@ -4430,6 +4448,25 @@ static void test_showwindow(void)
ok_sequence(WmMinUnminimizablePopupSeq, "ShowWindow(SW_MINIMIZE):popup, unminimizable", FALSE);
DestroyWindow(hwnd);
flush_sequence();
+
+ /* Test 6:
+ * 1. Create a visible popup window without minimization decoration.
+ * 2. Minimize it with WM_SYSCOMMAND(SC_MINIMIZE).
+ */
+ trace("calling CreateWindowExA( WS_VISIBLE ) for popup window\n");
+ hwnd = CreateWindowExA(0, "TestWindowClass", "Test popup", WS_POPUP | WS_VISIBLE,
+ 100, 100, 200, 200, 0, 0, 0, NULL);
+ ok (hwnd != 0, "Failed to create popup window\n");
+ ok(!IsIconic(hwnd), "window should NOT be iconic\n");
+ ok_sequence(WmCreatePopupSeq, "CreateWindow(WS_VISIBLE):popup", FALSE);
+
+ trace("calling SendMessage( WM_SYSCOMMAND, SC_MINIMIZE ) for unminimizable popup window\n");
+ SendMessageA( hwnd, WM_SYSCOMMAND, SC_MINIMIZE, 0 );
+ ok(IsIconic(hwnd), "window should be iconic\n");
+ ok_sequence(WmSCMinUnminimizablePopupSeq, "SendMessage( WM_SYSCOMMAND, SC_MINIMIZE ):popup, unminimizable", FALSE);
+ DestroyWindow(hwnd);
+ flush_sequence();
+
}
static void test_sys_menu(void)
--
2.0.4
More information about the wine-patches
mailing list