user32/tests: Fix a number of message sequence tests that could sometimes fail.
This commit is contained in:
parent
2b1c4ba138
commit
f59540ddad
|
@ -163,6 +163,9 @@ static const struct message WmSWP_ShowOverlappedSeq[] = {
|
||||||
{ WM_NCPAINT, sent|wparam|optional, 1 },
|
{ WM_NCPAINT, sent|wparam|optional, 1 },
|
||||||
{ WM_ERASEBKGND, sent|optional },
|
{ WM_ERASEBKGND, sent|optional },
|
||||||
{ EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam, 0, 0 },
|
{ EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam, 0, 0 },
|
||||||
|
{ WM_PAINT, sent|optional },
|
||||||
|
{ WM_NCPAINT, sent|beginpaint|optional },
|
||||||
|
{ WM_ERASEBKGND, sent|beginpaint|optional },
|
||||||
{ 0 }
|
{ 0 }
|
||||||
};
|
};
|
||||||
/* SetWindowPos(SWP_HIDEWINDOW|SWP_NOSIZE|SWP_NOMOVE)
|
/* SetWindowPos(SWP_HIDEWINDOW|SWP_NOSIZE|SWP_NOMOVE)
|
||||||
|
@ -423,6 +426,8 @@ static const struct message WmShowOverlappedSeq[] = {
|
||||||
{ WM_SIZE, sent },
|
{ WM_SIZE, sent },
|
||||||
{ WM_MOVE, sent },
|
{ WM_MOVE, sent },
|
||||||
#endif
|
#endif
|
||||||
|
{ WM_PAINT, sent|optional },
|
||||||
|
{ WM_NCPAINT, sent|beginpaint|optional },
|
||||||
{ 0 }
|
{ 0 }
|
||||||
};
|
};
|
||||||
/* ShowWindow(SW_SHOWMAXIMIZED) for a not visible overlapped window */
|
/* ShowWindow(SW_SHOWMAXIMIZED) for a not visible overlapped window */
|
||||||
|
@ -458,6 +463,9 @@ static const struct message WmShowMaxOverlappedSeq[] = {
|
||||||
{ WM_ERASEBKGND, sent|optional },
|
{ WM_ERASEBKGND, sent|optional },
|
||||||
{ EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam, 0, 0 },
|
{ EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam, 0, 0 },
|
||||||
{ EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam, 0, 0 },
|
{ EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam, 0, 0 },
|
||||||
|
{ WM_PAINT, sent|optional },
|
||||||
|
{ WM_NCPAINT, sent|beginpaint|optional },
|
||||||
|
{ WM_ERASEBKGND, sent|beginpaint|optional },
|
||||||
{ 0 }
|
{ 0 }
|
||||||
};
|
};
|
||||||
/* ShowWindow(SW_RESTORE) for a not visible maximized overlapped window */
|
/* ShowWindow(SW_RESTORE) for a not visible maximized overlapped window */
|
||||||
|
@ -467,15 +475,18 @@ static const struct message WmShowRestoreMaxOverlappedSeq[] = {
|
||||||
{ WM_WINDOWPOSCHANGING, sent|wparam, SWP_FRAMECHANGED|SWP_STATECHANGED },
|
{ WM_WINDOWPOSCHANGING, sent|wparam, SWP_FRAMECHANGED|SWP_STATECHANGED },
|
||||||
{ WM_GETMINMAXINFO, sent|defwinproc },
|
{ WM_GETMINMAXINFO, sent|defwinproc },
|
||||||
{ WM_NCCALCSIZE, sent|wparam, TRUE },
|
{ WM_NCCALCSIZE, sent|wparam, TRUE },
|
||||||
{ WM_NCPAINT, sent|wparam|optional, 1 },
|
{ WM_NCPAINT, sent|optional },
|
||||||
{ WM_GETTEXT, sent|defwinproc|optional },
|
{ WM_GETTEXT, sent|defwinproc|optional },
|
||||||
{ WM_ERASEBKGND, sent },
|
{ WM_ERASEBKGND, sent|optional },
|
||||||
{ WM_WINDOWPOSCHANGED, sent|wparam, SWP_FRAMECHANGED|SWP_STATECHANGED },
|
{ WM_WINDOWPOSCHANGED, sent|wparam, SWP_FRAMECHANGED|SWP_STATECHANGED },
|
||||||
{ WM_MOVE, sent|defwinproc },
|
{ WM_MOVE, sent|defwinproc },
|
||||||
{ WM_SIZE, sent|defwinproc|wparam, SIZE_RESTORED },
|
{ WM_SIZE, sent|defwinproc|wparam, SIZE_RESTORED },
|
||||||
{ WM_NCCALCSIZE, sent|wparam|optional, TRUE },
|
{ WM_NCCALCSIZE, sent|wparam|optional, TRUE },
|
||||||
{ WM_NCPAINT, sent|wparam|optional, 1 },
|
{ WM_NCPAINT, sent|optional },
|
||||||
{ WM_ERASEBKGND, sent|optional },
|
{ WM_ERASEBKGND, sent|optional },
|
||||||
|
{ WM_PAINT, sent|optional },
|
||||||
|
{ WM_NCPAINT, sent|beginpaint|optional },
|
||||||
|
{ WM_ERASEBKGND, sent|beginpaint|optional },
|
||||||
{ 0 }
|
{ 0 }
|
||||||
};
|
};
|
||||||
/* ShowWindow(SW_RESTORE) for a not visible minimized overlapped window */
|
/* ShowWindow(SW_RESTORE) for a not visible minimized overlapped window */
|
||||||
|
@ -506,6 +517,9 @@ static const struct message WmShowRestoreMinOverlappedSeq[] = {
|
||||||
{ WM_NCPAINT, sent|wparam|optional, 1 },
|
{ WM_NCPAINT, sent|wparam|optional, 1 },
|
||||||
{ WM_ERASEBKGND, sent|optional },
|
{ WM_ERASEBKGND, sent|optional },
|
||||||
{ WM_ACTIVATE, sent|wparam, 1 },
|
{ WM_ACTIVATE, sent|wparam, 1 },
|
||||||
|
{ WM_PAINT, sent|optional },
|
||||||
|
{ WM_NCPAINT, sent|beginpaint|optional },
|
||||||
|
{ WM_ERASEBKGND, sent|beginpaint|optional },
|
||||||
{ 0 }
|
{ 0 }
|
||||||
};
|
};
|
||||||
/* ShowWindow(SW_SHOWMINIMIZED) for a not visible overlapped window */
|
/* ShowWindow(SW_SHOWMINIMIZED) for a not visible overlapped window */
|
||||||
|
@ -521,7 +535,7 @@ static const struct message WmShowMinOverlappedSeq[] = {
|
||||||
{ WM_GETMINMAXINFO, sent|defwinproc },
|
{ WM_GETMINMAXINFO, sent|defwinproc },
|
||||||
{ WM_NCCALCSIZE, sent|wparam, TRUE },
|
{ WM_NCCALCSIZE, sent|wparam, TRUE },
|
||||||
{ EVENT_OBJECT_REORDER, winevent_hook|wparam|lparam, 0, 0 },
|
{ EVENT_OBJECT_REORDER, winevent_hook|wparam|lparam, 0, 0 },
|
||||||
{ WM_NCPAINT, sent },
|
{ WM_NCPAINT, sent|optional },
|
||||||
{ WM_GETTEXT, sent|defwinproc|optional },
|
{ WM_GETTEXT, sent|defwinproc|optional },
|
||||||
{ WM_WINDOWPOSCHANGED, sent },
|
{ WM_WINDOWPOSCHANGED, sent },
|
||||||
{ WM_MOVE, sent|defwinproc },
|
{ WM_MOVE, sent|defwinproc },
|
||||||
|
@ -534,6 +548,9 @@ static const struct message WmShowMinOverlappedSeq[] = {
|
||||||
{ WM_GETTEXT, sent|defwinproc|optional },
|
{ WM_GETTEXT, sent|defwinproc|optional },
|
||||||
{ WM_ACTIVATE, sent },
|
{ WM_ACTIVATE, sent },
|
||||||
{ WM_ACTIVATEAPP, sent|wparam, 0 },
|
{ WM_ACTIVATEAPP, sent|wparam, 0 },
|
||||||
|
{ WM_PAINT, sent|optional },
|
||||||
|
{ WM_NCPAINT, sent|beginpaint|optional },
|
||||||
|
{ WM_ERASEBKGND, sent|beginpaint|optional },
|
||||||
{ 0 }
|
{ 0 }
|
||||||
};
|
};
|
||||||
/* ShowWindow(SW_HIDE) for a visible overlapped window */
|
/* ShowWindow(SW_HIDE) for a visible overlapped window */
|
||||||
|
@ -560,10 +577,10 @@ static const struct message WmDestroyOverlappedSeq[] = {
|
||||||
{ EVENT_OBJECT_HIDE, winevent_hook|wparam|lparam, 0, 0 },
|
{ EVENT_OBJECT_HIDE, winevent_hook|wparam|lparam, 0, 0 },
|
||||||
{ 0x0090, sent|optional },
|
{ 0x0090, sent|optional },
|
||||||
{ WM_WINDOWPOSCHANGED, sent|wparam, SWP_HIDEWINDOW|SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOMOVE|SWP_NOCLIENTSIZE|SWP_NOCLIENTMOVE },
|
{ WM_WINDOWPOSCHANGED, sent|wparam, SWP_HIDEWINDOW|SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOMOVE|SWP_NOCLIENTSIZE|SWP_NOCLIENTMOVE },
|
||||||
{ WM_NCACTIVATE, sent|wparam, 0 },
|
{ WM_NCACTIVATE, sent|optional|wparam, 0 },
|
||||||
{ WM_ACTIVATE, sent|wparam, 0 },
|
{ WM_ACTIVATE, sent|optional|wparam, 0 },
|
||||||
{ WM_ACTIVATEAPP, sent|wparam, 0 },
|
{ WM_ACTIVATEAPP, sent|optional|wparam, 0 },
|
||||||
{ WM_KILLFOCUS, sent|wparam, 0 },
|
{ WM_KILLFOCUS, sent|optional|wparam, 0 },
|
||||||
{ WM_IME_SETCONTEXT, sent|wparam|optional, 0 },
|
{ WM_IME_SETCONTEXT, sent|wparam|optional, 0 },
|
||||||
{ WM_IME_NOTIFY, sent|wparam|optional|defwinproc, 1 },
|
{ WM_IME_NOTIFY, sent|wparam|optional|defwinproc, 1 },
|
||||||
{ EVENT_OBJECT_DESTROY, winevent_hook|wparam|lparam, 0, 0 },
|
{ EVENT_OBJECT_DESTROY, winevent_hook|wparam|lparam, 0, 0 },
|
||||||
|
@ -649,7 +666,7 @@ static const struct message WmShowMaxPopupResizedSeq[] = {
|
||||||
{ WM_SETFOCUS, sent|wparam|defwinproc, 0 },
|
{ WM_SETFOCUS, sent|wparam|defwinproc, 0 },
|
||||||
{ WM_NCPAINT, sent|wparam|optional, 1 },
|
{ WM_NCPAINT, sent|wparam|optional, 1 },
|
||||||
{ WM_ERASEBKGND, sent|optional },
|
{ WM_ERASEBKGND, sent|optional },
|
||||||
{ WM_WINDOWPOSCHANGED, sent|wparam, SWP_NOCLIENTMOVE|SWP_SHOWWINDOW|SWP_FRAMECHANGED|SWP_NOMOVE },
|
{ WM_WINDOWPOSCHANGED, sent },
|
||||||
/* WinNT4.0 sends WM_MOVE */
|
/* WinNT4.0 sends WM_MOVE */
|
||||||
{ WM_MOVE, sent|defwinproc|optional },
|
{ WM_MOVE, sent|defwinproc|optional },
|
||||||
{ WM_SIZE, sent|defwinproc|wparam, SIZE_MAXIMIZED },
|
{ WM_SIZE, sent|defwinproc|wparam, SIZE_MAXIMIZED },
|
||||||
|
@ -2610,19 +2627,19 @@ static const struct message WmMaximizeMDIchildInvisibleSeq[] = {
|
||||||
{ EVENT_OBJECT_SHOW, winevent_hook|wparam|lparam, 0, 0 },
|
{ EVENT_OBJECT_SHOW, winevent_hook|wparam|lparam, 0, 0 },
|
||||||
{ WM_CHILDACTIVATE, sent|wparam|lparam, 0, 0 },
|
{ WM_CHILDACTIVATE, sent|wparam|lparam, 0, 0 },
|
||||||
|
|
||||||
{ WM_WINDOWPOSCHANGING, sent|wparam|defwinproc, SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOMOVE },
|
{ WM_WINDOWPOSCHANGING, sent|wparam|optional|defwinproc, SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOMOVE },
|
||||||
{ WM_NCACTIVATE, sent|wparam|defwinproc, 1 },
|
{ WM_NCACTIVATE, sent|wparam|optional|defwinproc, 1 },
|
||||||
{ HCBT_SETFOCUS, hook },
|
{ HCBT_SETFOCUS, hook|optional },
|
||||||
{ WM_IME_SETCONTEXT, sent|wparam|optional, 1 }, /* in MDI client */
|
{ WM_IME_SETCONTEXT, sent|wparam|optional, 1 }, /* in MDI client */
|
||||||
{ EVENT_OBJECT_FOCUS, winevent_hook|wparam|lparam, OBJID_CLIENT, 0 },
|
{ EVENT_OBJECT_FOCUS, winevent_hook|wparam|lparam, OBJID_CLIENT, 0 },
|
||||||
{ WM_SETFOCUS, sent }, /* in MDI client */
|
{ WM_SETFOCUS, sent|optional }, /* in MDI client */
|
||||||
{ HCBT_SETFOCUS, hook },
|
{ HCBT_SETFOCUS, hook|optional },
|
||||||
{ WM_KILLFOCUS, sent }, /* in MDI client */
|
{ WM_KILLFOCUS, sent|optional }, /* in MDI client */
|
||||||
{ WM_IME_SETCONTEXT, sent|wparam|optional, 0 }, /* in MDI client */
|
{ WM_IME_SETCONTEXT, sent|wparam|optional, 0 }, /* in MDI client */
|
||||||
{ WM_IME_SETCONTEXT, sent|wparam|defwinproc|optional, 1 },
|
{ WM_IME_SETCONTEXT, sent|wparam|defwinproc|optional, 1 },
|
||||||
{ EVENT_OBJECT_FOCUS, winevent_hook|wparam|lparam, OBJID_CLIENT, 0 },
|
{ EVENT_OBJECT_FOCUS, winevent_hook|wparam|lparam, OBJID_CLIENT, 0 },
|
||||||
{ WM_SETFOCUS, sent|defwinproc },
|
{ WM_SETFOCUS, sent|optional|defwinproc },
|
||||||
{ WM_MDIACTIVATE, sent|defwinproc },
|
{ WM_MDIACTIVATE, sent|optional|defwinproc },
|
||||||
{ WM_WINDOWPOSCHANGED, sent|wparam, SWP_SHOWWINDOW|SWP_FRAMECHANGED|SWP_NOSIZE|SWP_NOMOVE|SWP_NOCLIENTSIZE|SWP_NOCLIENTMOVE|SWP_STATECHANGED },
|
{ WM_WINDOWPOSCHANGED, sent|wparam, SWP_SHOWWINDOW|SWP_FRAMECHANGED|SWP_NOSIZE|SWP_NOMOVE|SWP_NOCLIENTSIZE|SWP_NOCLIENTMOVE|SWP_STATECHANGED },
|
||||||
{ WM_SIZE, sent|defwinproc|wparam, SIZE_MAXIMIZED },
|
{ WM_SIZE, sent|defwinproc|wparam, SIZE_MAXIMIZED },
|
||||||
/* in MDI frame */
|
/* in MDI frame */
|
||||||
|
@ -3563,6 +3580,7 @@ static void test_WM_SETREDRAW(HWND hwnd)
|
||||||
{
|
{
|
||||||
DWORD style = GetWindowLongA(hwnd, GWL_STYLE);
|
DWORD style = GetWindowLongA(hwnd, GWL_STYLE);
|
||||||
|
|
||||||
|
flush_events();
|
||||||
flush_sequence();
|
flush_sequence();
|
||||||
|
|
||||||
SendMessageA(hwnd, WM_SETREDRAW, FALSE, 0);
|
SendMessageA(hwnd, WM_SETREDRAW, FALSE, 0);
|
||||||
|
@ -3581,6 +3599,7 @@ static void test_WM_SETREDRAW(HWND hwnd)
|
||||||
/* restore original WS_VISIBLE state */
|
/* restore original WS_VISIBLE state */
|
||||||
SetWindowLongA(hwnd, GWL_STYLE, style);
|
SetWindowLongA(hwnd, GWL_STYLE, style);
|
||||||
|
|
||||||
|
flush_events();
|
||||||
flush_sequence();
|
flush_sequence();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3739,6 +3758,9 @@ static void test_scroll_messages(HWND hwnd)
|
||||||
INT min, max;
|
INT min, max;
|
||||||
BOOL ret;
|
BOOL ret;
|
||||||
|
|
||||||
|
flush_events();
|
||||||
|
flush_sequence();
|
||||||
|
|
||||||
min = 0xdeadbeef;
|
min = 0xdeadbeef;
|
||||||
max = 0xdeadbeef;
|
max = 0xdeadbeef;
|
||||||
ret = GetScrollRange(hwnd, SB_CTL, &min, &max);
|
ret = GetScrollRange(hwnd, SB_CTL, &min, &max);
|
||||||
|
@ -4109,6 +4131,7 @@ static const struct message WmZOrder[] = {
|
||||||
{ WM_SETFOCUS, sent|wparam|defwinproc, 0 },
|
{ WM_SETFOCUS, sent|wparam|defwinproc, 0 },
|
||||||
{ WM_WINDOWPOSCHANGED, sent|wparam, SWP_NOSIZE|SWP_NOMOVE|SWP_NOREDRAW|SWP_NOCLIENTSIZE|SWP_NOCLIENTMOVE },
|
{ WM_WINDOWPOSCHANGED, sent|wparam, SWP_NOSIZE|SWP_NOMOVE|SWP_NOREDRAW|SWP_NOCLIENTSIZE|SWP_NOCLIENTMOVE },
|
||||||
{ WM_GETTEXT, sent|optional },
|
{ WM_GETTEXT, sent|optional },
|
||||||
|
{ WM_NCCALCSIZE, sent|optional },
|
||||||
{ 0 }
|
{ 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -4125,7 +4148,7 @@ static void test_MsgWaitForMultipleObjects(HWND hwnd)
|
||||||
ret = MsgWaitForMultipleObjects(0, NULL, FALSE, 0, QS_POSTMESSAGE);
|
ret = MsgWaitForMultipleObjects(0, NULL, FALSE, 0, QS_POSTMESSAGE);
|
||||||
ok(ret == WAIT_OBJECT_0, "MsgWaitForMultipleObjects returned %x\n", ret);
|
ok(ret == WAIT_OBJECT_0, "MsgWaitForMultipleObjects returned %x\n", ret);
|
||||||
|
|
||||||
ok(PeekMessageW( &msg, 0, 0, 0, PM_REMOVE ), "PeekMessage should succeed\n");
|
ok(PeekMessageA( &msg, 0, 0, 0, PM_REMOVE ), "PeekMessage should succeed\n");
|
||||||
ok(msg.message == WM_USER, "got %04x instead of WM_USER\n", msg.message);
|
ok(msg.message == WM_USER, "got %04x instead of WM_USER\n", msg.message);
|
||||||
|
|
||||||
ret = MsgWaitForMultipleObjects(0, NULL, FALSE, 0, QS_POSTMESSAGE);
|
ret = MsgWaitForMultipleObjects(0, NULL, FALSE, 0, QS_POSTMESSAGE);
|
||||||
|
@ -4136,7 +4159,7 @@ static void test_MsgWaitForMultipleObjects(HWND hwnd)
|
||||||
ret = MsgWaitForMultipleObjects(0, NULL, FALSE, 0, QS_POSTMESSAGE);
|
ret = MsgWaitForMultipleObjects(0, NULL, FALSE, 0, QS_POSTMESSAGE);
|
||||||
ok(ret == WAIT_OBJECT_0, "MsgWaitForMultipleObjects returned %x\n", ret);
|
ok(ret == WAIT_OBJECT_0, "MsgWaitForMultipleObjects returned %x\n", ret);
|
||||||
|
|
||||||
ok(PeekMessageW( &msg, 0, 0, 0, PM_NOREMOVE ), "PeekMessage should succeed\n");
|
ok(PeekMessageA( &msg, 0, 0, 0, PM_NOREMOVE ), "PeekMessage should succeed\n");
|
||||||
ok(msg.message == WM_USER, "got %04x instead of WM_USER\n", msg.message);
|
ok(msg.message == WM_USER, "got %04x instead of WM_USER\n", msg.message);
|
||||||
|
|
||||||
/* shows QS_POSTMESSAGE flag is cleared in the PeekMessage call */
|
/* shows QS_POSTMESSAGE flag is cleared in the PeekMessage call */
|
||||||
|
@ -4149,9 +4172,9 @@ static void test_MsgWaitForMultipleObjects(HWND hwnd)
|
||||||
ret = MsgWaitForMultipleObjects(0, NULL, FALSE, 0, QS_POSTMESSAGE);
|
ret = MsgWaitForMultipleObjects(0, NULL, FALSE, 0, QS_POSTMESSAGE);
|
||||||
ok(ret == WAIT_OBJECT_0, "MsgWaitForMultipleObjects returned %x\n", ret);
|
ok(ret == WAIT_OBJECT_0, "MsgWaitForMultipleObjects returned %x\n", ret);
|
||||||
|
|
||||||
ok(PeekMessageW( &msg, 0, 0, 0, PM_REMOVE ), "PeekMessage should succeed\n");
|
ok(PeekMessageA( &msg, 0, 0, 0, PM_REMOVE ), "PeekMessage should succeed\n");
|
||||||
ok(msg.message == WM_USER, "got %04x instead of WM_USER\n", msg.message);
|
ok(msg.message == WM_USER, "got %04x instead of WM_USER\n", msg.message);
|
||||||
ok(PeekMessageW( &msg, 0, 0, 0, PM_REMOVE ), "PeekMessage should succeed\n");
|
ok(PeekMessageA( &msg, 0, 0, 0, PM_REMOVE ), "PeekMessage should succeed\n");
|
||||||
ok(msg.message == WM_USER, "got %04x instead of WM_USER\n", msg.message);
|
ok(msg.message == WM_USER, "got %04x instead of WM_USER\n", msg.message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4179,36 +4202,45 @@ static void test_messages(void)
|
||||||
test_WM_SETREDRAW(hwnd);
|
test_WM_SETREDRAW(hwnd);
|
||||||
|
|
||||||
SetWindowPos(hwnd, 0,0,0,0,0, SWP_SHOWWINDOW|SWP_NOSIZE|SWP_NOMOVE);
|
SetWindowPos(hwnd, 0,0,0,0,0, SWP_SHOWWINDOW|SWP_NOSIZE|SWP_NOMOVE);
|
||||||
|
flush_events();
|
||||||
ok_sequence(WmSWP_ShowOverlappedSeq, "SetWindowPos:SWP_SHOWWINDOW:overlapped", FALSE);
|
ok_sequence(WmSWP_ShowOverlappedSeq, "SetWindowPos:SWP_SHOWWINDOW:overlapped", FALSE);
|
||||||
ok(IsWindowVisible(hwnd), "window should be visible at this point\n");
|
ok(IsWindowVisible(hwnd), "window should be visible at this point\n");
|
||||||
|
|
||||||
ok(GetActiveWindow() == hwnd, "window should be active\n");
|
ok(GetActiveWindow() == hwnd, "window should be active\n");
|
||||||
ok(GetFocus() == hwnd, "window should have input focus\n");
|
ok(GetFocus() == hwnd, "window should have input focus\n");
|
||||||
ShowWindow(hwnd, SW_HIDE);
|
ShowWindow(hwnd, SW_HIDE);
|
||||||
|
flush_events();
|
||||||
ok_sequence(WmHideOverlappedSeq, "ShowWindow(SW_HIDE):overlapped", FALSE);
|
ok_sequence(WmHideOverlappedSeq, "ShowWindow(SW_HIDE):overlapped", FALSE);
|
||||||
|
|
||||||
ShowWindow(hwnd, SW_SHOW);
|
ShowWindow(hwnd, SW_SHOW);
|
||||||
|
flush_events();
|
||||||
ok_sequence(WmShowOverlappedSeq, "ShowWindow(SW_SHOW):overlapped", TRUE);
|
ok_sequence(WmShowOverlappedSeq, "ShowWindow(SW_SHOW):overlapped", TRUE);
|
||||||
|
|
||||||
ShowWindow(hwnd, SW_HIDE);
|
ShowWindow(hwnd, SW_HIDE);
|
||||||
|
flush_events();
|
||||||
ok_sequence(WmHideOverlappedSeq, "ShowWindow(SW_HIDE):overlapped", FALSE);
|
ok_sequence(WmHideOverlappedSeq, "ShowWindow(SW_HIDE):overlapped", FALSE);
|
||||||
|
|
||||||
ShowWindow(hwnd, SW_SHOWMAXIMIZED);
|
ShowWindow(hwnd, SW_SHOWMAXIMIZED);
|
||||||
|
flush_events();
|
||||||
ok_sequence(WmShowMaxOverlappedSeq, "ShowWindow(SW_SHOWMAXIMIZED):overlapped", TRUE);
|
ok_sequence(WmShowMaxOverlappedSeq, "ShowWindow(SW_SHOWMAXIMIZED):overlapped", TRUE);
|
||||||
|
|
||||||
ShowWindow(hwnd, SW_RESTORE);
|
ShowWindow(hwnd, SW_RESTORE);
|
||||||
ok_sequence(WmShowRestoreMaxOverlappedSeq, "ShowWindow(SW_RESTORE):overlapped", FALSE);
|
ok_sequence(WmShowRestoreMaxOverlappedSeq, "ShowWindow(SW_RESTORE):overlapped", FALSE);
|
||||||
|
flush_events();
|
||||||
flush_sequence();
|
flush_sequence();
|
||||||
|
|
||||||
ShowWindow(hwnd, SW_MINIMIZE);
|
ShowWindow(hwnd, SW_MINIMIZE);
|
||||||
|
flush_events();
|
||||||
ok_sequence(WmShowMinOverlappedSeq, "ShowWindow(SW_SHOWMINIMIZED):overlapped", TRUE);
|
ok_sequence(WmShowMinOverlappedSeq, "ShowWindow(SW_SHOWMINIMIZED):overlapped", TRUE);
|
||||||
flush_sequence();
|
flush_sequence();
|
||||||
|
|
||||||
ShowWindow(hwnd, SW_RESTORE);
|
ShowWindow(hwnd, SW_RESTORE);
|
||||||
|
flush_events();
|
||||||
ok_sequence(WmShowRestoreMinOverlappedSeq, "ShowWindow(SW_RESTORE):overlapped", TRUE);
|
ok_sequence(WmShowRestoreMinOverlappedSeq, "ShowWindow(SW_RESTORE):overlapped", TRUE);
|
||||||
flush_sequence();
|
flush_sequence();
|
||||||
|
|
||||||
ShowWindow(hwnd, SW_SHOW);
|
ShowWindow(hwnd, SW_SHOW);
|
||||||
|
flush_events();
|
||||||
ok_sequence(WmEmptySeq, "ShowWindow(SW_SHOW):overlapped already visible", FALSE);
|
ok_sequence(WmEmptySeq, "ShowWindow(SW_SHOW):overlapped already visible", FALSE);
|
||||||
|
|
||||||
ok(GetActiveWindow() == hwnd, "window should be active\n");
|
ok(GetActiveWindow() == hwnd, "window should be active\n");
|
||||||
|
@ -4220,6 +4252,7 @@ static void test_messages(void)
|
||||||
|
|
||||||
/* test WM_SETREDRAW on a visible top level window */
|
/* test WM_SETREDRAW on a visible top level window */
|
||||||
ShowWindow(hwnd, SW_SHOW);
|
ShowWindow(hwnd, SW_SHOW);
|
||||||
|
flush_events();
|
||||||
test_WM_SETREDRAW(hwnd);
|
test_WM_SETREDRAW(hwnd);
|
||||||
|
|
||||||
trace("testing scroll APIs on a visible top level window %p\n", hwnd);
|
trace("testing scroll APIs on a visible top level window %p\n", hwnd);
|
||||||
|
@ -4539,38 +4572,37 @@ static void test_messages(void)
|
||||||
|
|
||||||
flush_sequence();
|
flush_sequence();
|
||||||
res = SendMessage(hwnd, 0x3B, 0x8000000b, 0);
|
res = SendMessage(hwnd, 0x3B, 0x8000000b, 0);
|
||||||
|
if (!res)
|
||||||
|
{
|
||||||
|
todo_wine win_skip( "Message 0x3b not supported\n" );
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
ok_sequence(WmInitEndSession, "Handling of undocumented 0x3B message by DefWindowProc wparam=0x8000000b", TRUE);
|
ok_sequence(WmInitEndSession, "Handling of undocumented 0x3B message by DefWindowProc wparam=0x8000000b", TRUE);
|
||||||
todo_wine
|
|
||||||
ok(res == 1, "SendMessage(hwnd, 0x3B, 0x8000000b, 0) should have returned 1 instead of %ld\n", res);
|
ok(res == 1, "SendMessage(hwnd, 0x3B, 0x8000000b, 0) should have returned 1 instead of %ld\n", res);
|
||||||
res = SendMessage(hwnd, 0x3B, 0x0000000b, 0);
|
res = SendMessage(hwnd, 0x3B, 0x0000000b, 0);
|
||||||
ok_sequence(WmInitEndSession_2, "Handling of undocumented 0x3B message by DefWindowProc wparam=0x0000000b", TRUE);
|
ok_sequence(WmInitEndSession_2, "Handling of undocumented 0x3B message by DefWindowProc wparam=0x0000000b", TRUE);
|
||||||
todo_wine
|
|
||||||
ok(res == 1, "SendMessage(hwnd, 0x3B, 0x0000000b, 0) should have returned 1 instead of %ld\n", res);
|
ok(res == 1, "SendMessage(hwnd, 0x3B, 0x0000000b, 0) should have returned 1 instead of %ld\n", res);
|
||||||
res = SendMessage(hwnd, 0x3B, 0x0000000f, 0);
|
res = SendMessage(hwnd, 0x3B, 0x0000000f, 0);
|
||||||
ok_sequence(WmInitEndSession_2, "Handling of undocumented 0x3B message by DefWindowProc wparam=0x0000000f", TRUE);
|
ok_sequence(WmInitEndSession_2, "Handling of undocumented 0x3B message by DefWindowProc wparam=0x0000000f", TRUE);
|
||||||
todo_wine
|
|
||||||
ok(res == 1, "SendMessage(hwnd, 0x3B, 0x0000000f, 0) should have returned 1 instead of %ld\n", res);
|
ok(res == 1, "SendMessage(hwnd, 0x3B, 0x0000000f, 0) should have returned 1 instead of %ld\n", res);
|
||||||
|
|
||||||
flush_sequence();
|
flush_sequence();
|
||||||
res = SendMessage(hwnd, 0x3B, 0x80000008, 0);
|
res = SendMessage(hwnd, 0x3B, 0x80000008, 0);
|
||||||
ok_sequence(WmInitEndSession_3, "Handling of undocumented 0x3B message by DefWindowProc wparam=0x80000008", TRUE);
|
ok_sequence(WmInitEndSession_3, "Handling of undocumented 0x3B message by DefWindowProc wparam=0x80000008", TRUE);
|
||||||
todo_wine
|
|
||||||
ok(res == 2, "SendMessage(hwnd, 0x3B, 0x80000008, 0) should have returned 2 instead of %ld\n", res);
|
ok(res == 2, "SendMessage(hwnd, 0x3B, 0x80000008, 0) should have returned 2 instead of %ld\n", res);
|
||||||
res = SendMessage(hwnd, 0x3B, 0x00000008, 0);
|
res = SendMessage(hwnd, 0x3B, 0x00000008, 0);
|
||||||
ok_sequence(WmInitEndSession_4, "Handling of undocumented 0x3B message by DefWindowProc wparam=0x00000008", TRUE);
|
ok_sequence(WmInitEndSession_4, "Handling of undocumented 0x3B message by DefWindowProc wparam=0x00000008", TRUE);
|
||||||
todo_wine
|
|
||||||
ok(res == 2, "SendMessage(hwnd, 0x3B, 0x00000008, 0) should have returned 2 instead of %ld\n", res);
|
ok(res == 2, "SendMessage(hwnd, 0x3B, 0x00000008, 0) should have returned 2 instead of %ld\n", res);
|
||||||
|
|
||||||
res = SendMessage(hwnd, 0x3B, 0x80000004, 0);
|
res = SendMessage(hwnd, 0x3B, 0x80000004, 0);
|
||||||
ok_sequence(WmInitEndSession_3, "Handling of undocumented 0x3B message by DefWindowProc wparam=0x80000004", TRUE);
|
ok_sequence(WmInitEndSession_3, "Handling of undocumented 0x3B message by DefWindowProc wparam=0x80000004", TRUE);
|
||||||
todo_wine
|
|
||||||
ok(res == 2, "SendMessage(hwnd, 0x3B, 0x80000004, 0) should have returned 2 instead of %ld\n", res);
|
ok(res == 2, "SendMessage(hwnd, 0x3B, 0x80000004, 0) should have returned 2 instead of %ld\n", res);
|
||||||
|
|
||||||
res = SendMessage(hwnd, 0x3B, 0x80000001, 0);
|
res = SendMessage(hwnd, 0x3B, 0x80000001, 0);
|
||||||
ok_sequence(WmInitEndSession_5, "Handling of undocumented 0x3B message by DefWindowProc wparam=0x80000001", TRUE);
|
ok_sequence(WmInitEndSession_5, "Handling of undocumented 0x3B message by DefWindowProc wparam=0x80000001", TRUE);
|
||||||
todo_wine
|
|
||||||
ok(res == 2, "SendMessage(hwnd, 0x3B, 0x80000001, 0) should have returned 2 instead of %ld\n", res);
|
ok(res == 2, "SendMessage(hwnd, 0x3B, 0x80000001, 0) should have returned 2 instead of %ld\n", res);
|
||||||
|
|
||||||
|
done:
|
||||||
DestroyWindow(hwnd);
|
DestroyWindow(hwnd);
|
||||||
flush_sequence();
|
flush_sequence();
|
||||||
}
|
}
|
||||||
|
@ -5184,8 +5216,8 @@ static const struct message WmImeKeydownMsgSeq_0[] =
|
||||||
|
|
||||||
static const struct message WmImeKeydownMsgSeq_1[] =
|
static const struct message WmImeKeydownMsgSeq_1[] =
|
||||||
{
|
{
|
||||||
{ WM_KEYDOWN, wparam, VK_RETURN },
|
{ WM_KEYDOWN, optional|wparam, VK_RETURN },
|
||||||
{ WM_CHAR, wparam, VK_RETURN },
|
{ WM_CHAR, optional|wparam, VK_RETURN },
|
||||||
{ 0 }
|
{ 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -6048,7 +6080,7 @@ static void test_interthread_messages(void)
|
||||||
memset(buf, 0, sizeof(buf));
|
memset(buf, 0, sizeof(buf));
|
||||||
SetLastError(0xdeadbeef);
|
SetLastError(0xdeadbeef);
|
||||||
len = DispatchMessageA(&msg);
|
len = DispatchMessageA(&msg);
|
||||||
ok(!len && GetLastError() == ERROR_MESSAGE_SYNC_ONLY,
|
ok((!len && GetLastError() == ERROR_MESSAGE_SYNC_ONLY) || broken(len), /* nt4 */
|
||||||
"DispatchMessageA(WM_GETTEXT) succeded on another thread window: ret %d, error %d\n", len, GetLastError());
|
"DispatchMessageA(WM_GETTEXT) succeded on another thread window: ret %d, error %d\n", len, GetLastError());
|
||||||
|
|
||||||
/* the following test causes an exception in user.exe under win9x */
|
/* the following test causes an exception in user.exe under win9x */
|
||||||
|
@ -6371,6 +6403,7 @@ static void test_accelerators(void)
|
||||||
hAccel = LoadAccelerators(GetModuleHandleA(0), MAKEINTRESOURCE(1));
|
hAccel = LoadAccelerators(GetModuleHandleA(0), MAKEINTRESOURCE(1));
|
||||||
assert(hAccel != 0);
|
assert(hAccel != 0);
|
||||||
|
|
||||||
|
flush_events();
|
||||||
pump_msg_loop(hwnd, 0);
|
pump_msg_loop(hwnd, 0);
|
||||||
flush_sequence();
|
flush_sequence();
|
||||||
|
|
||||||
|
@ -7215,7 +7248,7 @@ static LRESULT CALLBACK MsgConversionProcW(HWND hwnd, UINT uMsg, WPARAM wParam,
|
||||||
|
|
||||||
static const struct message WmGetTextLengthAfromW[] = {
|
static const struct message WmGetTextLengthAfromW[] = {
|
||||||
{ WM_GETTEXTLENGTH, sent },
|
{ WM_GETTEXTLENGTH, sent },
|
||||||
{ WM_GETTEXT, sent },
|
{ WM_GETTEXT, sent|optional },
|
||||||
{ 0 }
|
{ 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -7345,13 +7378,15 @@ static void test_message_conversion(void)
|
||||||
newproc = (WNDPROC)GetWindowLongPtrA( hwnd, GWLP_WNDPROC );
|
newproc = (WNDPROC)GetWindowLongPtrA( hwnd, GWLP_WNDPROC );
|
||||||
lRes = CallWindowProcA( newproc, hwnd, WM_GETTEXTLENGTH, 0, 0 );
|
lRes = CallWindowProcA( newproc, hwnd, WM_GETTEXTLENGTH, 0, 0 );
|
||||||
ok( lRes == WideCharToMultiByte( CP_ACP, 0, dummy_window_text, lstrlenW(dummy_window_text),
|
ok( lRes == WideCharToMultiByte( CP_ACP, 0, dummy_window_text, lstrlenW(dummy_window_text),
|
||||||
NULL, 0, NULL, NULL ),
|
NULL, 0, NULL, NULL ) ||
|
||||||
|
broken(lRes == lstrlenW(dummy_window_text) + 37),
|
||||||
"got bad length %ld\n", lRes );
|
"got bad length %ld\n", lRes );
|
||||||
|
|
||||||
SetWindowLongPtrW( hwnd, GWLP_WNDPROC, (LONG_PTR)wndproc ); /* restore old wnd proc */
|
SetWindowLongPtrW( hwnd, GWLP_WNDPROC, (LONG_PTR)wndproc ); /* restore old wnd proc */
|
||||||
lRes = CallWindowProcA( newproc, hwnd, WM_GETTEXTLENGTH, 0, 0 );
|
lRes = CallWindowProcA( newproc, hwnd, WM_GETTEXTLENGTH, 0, 0 );
|
||||||
ok( lRes == WideCharToMultiByte( CP_ACP, 0, dummy_window_text, lstrlenW(dummy_window_text),
|
ok( lRes == WideCharToMultiByte( CP_ACP, 0, dummy_window_text, lstrlenW(dummy_window_text),
|
||||||
NULL, 0, NULL, NULL ),
|
NULL, 0, NULL, NULL ) ||
|
||||||
|
broken(lRes == lstrlenW(dummy_window_text) + 37),
|
||||||
"got bad length %ld\n", lRes );
|
"got bad length %ld\n", lRes );
|
||||||
|
|
||||||
ret = DestroyWindow(hwnd);
|
ret = DestroyWindow(hwnd);
|
||||||
|
@ -8664,7 +8699,7 @@ static const struct message WmKeyUpSkippedSeq[] =
|
||||||
{ 0 }
|
{ 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
#define EV_START_STOP 0
|
#define EV_STOP 0
|
||||||
#define EV_SENDMSG 1
|
#define EV_SENDMSG 1
|
||||||
#define EV_ACK 2
|
#define EV_ACK 2
|
||||||
|
|
||||||
|
@ -8679,9 +8714,8 @@ static DWORD CALLBACK send_msg_thread_2(void *param)
|
||||||
DWORD ret;
|
DWORD ret;
|
||||||
struct peekmsg_info *info = param;
|
struct peekmsg_info *info = param;
|
||||||
|
|
||||||
trace("thread: waiting for start\n");
|
|
||||||
WaitForSingleObject(info->hevent[EV_START_STOP], INFINITE);
|
|
||||||
trace("thread: looping\n");
|
trace("thread: looping\n");
|
||||||
|
SetEvent(info->hevent[EV_ACK]);
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
|
@ -8689,13 +8723,14 @@ static DWORD CALLBACK send_msg_thread_2(void *param)
|
||||||
|
|
||||||
switch (ret)
|
switch (ret)
|
||||||
{
|
{
|
||||||
case WAIT_OBJECT_0 + EV_START_STOP:
|
case WAIT_OBJECT_0 + EV_STOP:
|
||||||
trace("thread: exiting\n");
|
trace("thread: exiting\n");
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
case WAIT_OBJECT_0 + EV_SENDMSG:
|
case WAIT_OBJECT_0 + EV_SENDMSG:
|
||||||
trace("thread: sending message\n");
|
trace("thread: sending message\n");
|
||||||
SendNotifyMessageA(info->hwnd, WM_USER, 0, 0);
|
ok( SendNotifyMessageA(info->hwnd, WM_USER, 0, 0),
|
||||||
|
"SendNotifyMessageA failed error %u\n", GetLastError());
|
||||||
SetEvent(info->hevent[EV_ACK]);
|
SetEvent(info->hevent[EV_ACK]);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -8725,15 +8760,12 @@ static void test_PeekMessage(void)
|
||||||
UpdateWindow(info.hwnd);
|
UpdateWindow(info.hwnd);
|
||||||
SetFocus(info.hwnd);
|
SetFocus(info.hwnd);
|
||||||
|
|
||||||
info.hevent[EV_START_STOP] = CreateEventA(NULL, 0, 0, NULL);
|
info.hevent[EV_STOP] = CreateEventA(NULL, 0, 0, NULL);
|
||||||
info.hevent[EV_SENDMSG] = CreateEventA(NULL, 0, 0, NULL);
|
info.hevent[EV_SENDMSG] = CreateEventA(NULL, 0, 0, NULL);
|
||||||
info.hevent[EV_ACK] = CreateEventA(NULL, 0, 0, NULL);
|
info.hevent[EV_ACK] = CreateEventA(NULL, 0, 0, NULL);
|
||||||
|
|
||||||
hthread = CreateThread(NULL, 0, send_msg_thread_2, &info, 0, &tid);
|
hthread = CreateThread(NULL, 0, send_msg_thread_2, &info, 0, &tid);
|
||||||
Sleep(100);
|
WaitForSingleObject(info.hevent[EV_ACK], 10000);
|
||||||
|
|
||||||
trace("signalling to start looping\n");
|
|
||||||
SetEvent(info.hevent[EV_START_STOP]);
|
|
||||||
|
|
||||||
flush_events();
|
flush_events();
|
||||||
flush_sequence();
|
flush_sequence();
|
||||||
|
@ -9043,7 +9075,7 @@ todo_wine {
|
||||||
"wrong qstatus %08x\n", qstatus);
|
"wrong qstatus %08x\n", qstatus);
|
||||||
|
|
||||||
trace("signalling to exit\n");
|
trace("signalling to exit\n");
|
||||||
SetEvent(info.hevent[EV_START_STOP]);
|
SetEvent(info.hevent[EV_STOP]);
|
||||||
|
|
||||||
WaitForSingleObject(hthread, INFINITE);
|
WaitForSingleObject(hthread, INFINITE);
|
||||||
|
|
||||||
|
@ -9341,7 +9373,8 @@ static void test_TrackMouseEvent(void)
|
||||||
SetLastError(0xdeadbeef);
|
SetLastError(0xdeadbeef);
|
||||||
ret = pTrackMouseEvent(&tme);
|
ret = pTrackMouseEvent(&tme);
|
||||||
ok(!ret, "TrackMouseEvent should fail\n");
|
ok(!ret, "TrackMouseEvent should fail\n");
|
||||||
ok(GetLastError() == ERROR_INVALID_PARAMETER, "not expected error %d\n", GetLastError());
|
ok(GetLastError() == ERROR_INVALID_PARAMETER || broken(GetLastError() == 0xdeadbeef),
|
||||||
|
"not expected error %u\n", GetLastError());
|
||||||
|
|
||||||
tme.cbSize = sizeof(tme);
|
tme.cbSize = sizeof(tme);
|
||||||
tme.dwFlags = TME_HOVER;
|
tme.dwFlags = TME_HOVER;
|
||||||
|
@ -9350,7 +9383,8 @@ static void test_TrackMouseEvent(void)
|
||||||
SetLastError(0xdeadbeef);
|
SetLastError(0xdeadbeef);
|
||||||
ret = pTrackMouseEvent(&tme);
|
ret = pTrackMouseEvent(&tme);
|
||||||
ok(!ret, "TrackMouseEvent should fail\n");
|
ok(!ret, "TrackMouseEvent should fail\n");
|
||||||
ok(GetLastError() == ERROR_INVALID_WINDOW_HANDLE, "not expected error %d\n", GetLastError());
|
ok(GetLastError() == ERROR_INVALID_WINDOW_HANDLE || broken(GetLastError() == 0xdeadbeef),
|
||||||
|
"not expected error %u\n", GetLastError());
|
||||||
|
|
||||||
tme.cbSize = sizeof(tme);
|
tme.cbSize = sizeof(tme);
|
||||||
tme.dwFlags = TME_HOVER | TME_CANCEL;
|
tme.dwFlags = TME_HOVER | TME_CANCEL;
|
||||||
|
@ -9359,7 +9393,8 @@ static void test_TrackMouseEvent(void)
|
||||||
SetLastError(0xdeadbeef);
|
SetLastError(0xdeadbeef);
|
||||||
ret = pTrackMouseEvent(&tme);
|
ret = pTrackMouseEvent(&tme);
|
||||||
ok(!ret, "TrackMouseEvent should fail\n");
|
ok(!ret, "TrackMouseEvent should fail\n");
|
||||||
ok(GetLastError() == ERROR_INVALID_WINDOW_HANDLE, "not expected error %d\n", GetLastError());
|
ok(GetLastError() == ERROR_INVALID_WINDOW_HANDLE || broken(GetLastError() == 0xdeadbeef),
|
||||||
|
"not expected error %u\n", GetLastError());
|
||||||
|
|
||||||
GetWindowRect(hwnd, &rc_parent);
|
GetWindowRect(hwnd, &rc_parent);
|
||||||
GetWindowRect(hchild, &rc_child);
|
GetWindowRect(hchild, &rc_child);
|
||||||
|
@ -9443,20 +9478,24 @@ static const struct message WmSetWindowRgn_no_redraw[] = {
|
||||||
static const struct message WmSetWindowRgn_clear[] = {
|
static const struct message WmSetWindowRgn_clear[] = {
|
||||||
{ WM_WINDOWPOSCHANGING, sent/*|wparam*/, SWP_NOACTIVATE|SWP_FRAMECHANGED|SWP_NOSIZE|SWP_NOMOVE/*|SWP_NOCLIENTSIZE|SWP_NOCLIENTMOVE only on some Windows versions */ },
|
{ WM_WINDOWPOSCHANGING, sent/*|wparam*/, SWP_NOACTIVATE|SWP_FRAMECHANGED|SWP_NOSIZE|SWP_NOMOVE/*|SWP_NOCLIENTSIZE|SWP_NOCLIENTMOVE only on some Windows versions */ },
|
||||||
{ WM_NCCALCSIZE, sent|wparam, 1 },
|
{ WM_NCCALCSIZE, sent|wparam, 1 },
|
||||||
{ WM_NCPAINT, sent|optional }, /* wparam != 1 */
|
{ WM_NCPAINT, sent|optional },
|
||||||
{ WM_GETTEXT, sent|defwinproc|optional },
|
{ WM_GETTEXT, sent|defwinproc|optional },
|
||||||
{ WM_ERASEBKGND, sent|optional }, /* FIXME: remove optional once Wine is fixed */
|
{ WM_ERASEBKGND, sent|optional }, /* FIXME: remove optional once Wine is fixed */
|
||||||
{ WM_WINDOWPOSCHANGED, sent|wparam, SWP_NOCLIENTSIZE|SWP_NOCLIENTMOVE|SWP_NOACTIVATE|SWP_FRAMECHANGED|SWP_NOSIZE|SWP_NOMOVE },
|
{ WM_WINDOWPOSCHANGED, sent|wparam, SWP_NOCLIENTSIZE|SWP_NOCLIENTMOVE|SWP_NOACTIVATE|SWP_FRAMECHANGED|SWP_NOSIZE|SWP_NOMOVE },
|
||||||
{ WM_NCCALCSIZE, sent|wparam|optional, 1 },
|
{ WM_NCCALCSIZE, sent|wparam|optional, 1 },
|
||||||
{ WM_NCPAINT, sent|optional }, /* wparam != 1 */
|
{ WM_NCPAINT, sent|optional },
|
||||||
{ WM_GETTEXT, sent|defwinproc|optional },
|
{ WM_GETTEXT, sent|defwinproc|optional },
|
||||||
{ WM_ERASEBKGND, sent|optional },
|
{ WM_ERASEBKGND, sent|optional },
|
||||||
{ WM_WINDOWPOSCHANGING, sent|optional },
|
{ WM_WINDOWPOSCHANGING, sent|optional },
|
||||||
{ WM_NCCALCSIZE, sent|optional|wparam, 1 },
|
{ WM_NCCALCSIZE, sent|optional|wparam, 1 },
|
||||||
{ WM_NCPAINT, sent|optional }, /* wparam != 1 */
|
{ WM_NCPAINT, sent|optional },
|
||||||
{ WM_GETTEXT, sent|defwinproc|optional },
|
{ WM_GETTEXT, sent|defwinproc|optional },
|
||||||
{ WM_ERASEBKGND, sent|optional },
|
{ WM_ERASEBKGND, sent|optional },
|
||||||
{ WM_WINDOWPOSCHANGED, sent|optional|wparam, SWP_NOCLIENTSIZE|SWP_NOCLIENTMOVE|SWP_NOACTIVATE|SWP_FRAMECHANGED|SWP_NOSIZE|SWP_NOMOVE },
|
{ WM_WINDOWPOSCHANGED, sent|optional|wparam, SWP_NOCLIENTSIZE|SWP_NOCLIENTMOVE|SWP_NOACTIVATE|SWP_FRAMECHANGED|SWP_NOSIZE|SWP_NOMOVE },
|
||||||
|
{ WM_NCCALCSIZE, sent|optional|wparam, 1 },
|
||||||
|
{ WM_NCPAINT, sent|optional },
|
||||||
|
{ WM_GETTEXT, sent|defwinproc|optional },
|
||||||
|
{ WM_ERASEBKGND, sent|optional },
|
||||||
{ EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam, 0, 0 },
|
{ EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam, 0, 0 },
|
||||||
{ EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam, 0, 0 },
|
{ EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam, 0, 0 },
|
||||||
{ 0 }
|
{ 0 }
|
||||||
|
@ -9610,7 +9649,7 @@ static const struct message WmHide_3[] = {
|
||||||
{ WM_SHOWWINDOW, sent|wparam, 0 },
|
{ WM_SHOWWINDOW, sent|wparam, 0 },
|
||||||
{ WM_WINDOWPOSCHANGING, sent|wparam, SWP_HIDEWINDOW|SWP_NOSIZE|SWP_NOMOVE },
|
{ WM_WINDOWPOSCHANGING, sent|wparam, SWP_HIDEWINDOW|SWP_NOSIZE|SWP_NOMOVE },
|
||||||
{ WM_WINDOWPOSCHANGED, sent|wparam, SWP_HIDEWINDOW|SWP_NOSIZE|SWP_NOMOVE|SWP_NOCLIENTSIZE|SWP_NOCLIENTMOVE },
|
{ WM_WINDOWPOSCHANGED, sent|wparam, SWP_HIDEWINDOW|SWP_NOSIZE|SWP_NOMOVE|SWP_NOCLIENTSIZE|SWP_NOCLIENTMOVE },
|
||||||
{ HCBT_SETFOCUS, hook },
|
{ HCBT_SETFOCUS, hook|optional },
|
||||||
{ EVENT_OBJECT_FOCUS, winevent_hook|wparam|lparam, OBJID_CLIENT, 0 },
|
{ EVENT_OBJECT_FOCUS, winevent_hook|wparam|lparam, OBJID_CLIENT, 0 },
|
||||||
{ 0 }
|
{ 0 }
|
||||||
};
|
};
|
||||||
|
@ -9636,6 +9675,7 @@ static const struct message WmMinimize_1[] = {
|
||||||
};
|
};
|
||||||
static const struct message WmMinimize_2[] = {
|
static const struct message WmMinimize_2[] = {
|
||||||
{ HCBT_MINMAX, hook|lparam, 0, SW_MINIMIZE },
|
{ HCBT_MINMAX, hook|lparam, 0, SW_MINIMIZE },
|
||||||
|
{ HCBT_SETFOCUS, hook|optional },
|
||||||
{ WM_WINDOWPOSCHANGING, sent|wparam, SWP_SHOWWINDOW|SWP_NOACTIVATE|SWP_FRAMECHANGED|SWP_NOCOPYBITS|SWP_STATECHANGED },
|
{ WM_WINDOWPOSCHANGING, sent|wparam, SWP_SHOWWINDOW|SWP_NOACTIVATE|SWP_FRAMECHANGED|SWP_NOCOPYBITS|SWP_STATECHANGED },
|
||||||
{ WM_WINDOWPOSCHANGED, sent|wparam, SWP_NOACTIVATE|SWP_FRAMECHANGED|SWP_NOCOPYBITS|SWP_STATECHANGED },
|
{ WM_WINDOWPOSCHANGED, sent|wparam, SWP_NOACTIVATE|SWP_FRAMECHANGED|SWP_NOCOPYBITS|SWP_STATECHANGED },
|
||||||
{ WM_MOVE, sent|defwinproc },
|
{ WM_MOVE, sent|defwinproc },
|
||||||
|
@ -9688,15 +9728,17 @@ static const struct message WmShowMaximized_1[] = {
|
||||||
static const struct message WmShowMaximized_2[] = {
|
static const struct message WmShowMaximized_2[] = {
|
||||||
{ HCBT_MINMAX, hook|lparam, 0, SW_SHOWMAXIMIZED },
|
{ HCBT_MINMAX, hook|lparam, 0, SW_SHOWMAXIMIZED },
|
||||||
{ WM_GETMINMAXINFO, sent },
|
{ WM_GETMINMAXINFO, sent },
|
||||||
{ WM_WINDOWPOSCHANGING, sent|wparam, SWP_NOSIZE|SWP_NOMOVE },
|
{ WM_WINDOWPOSCHANGING, sent|optional },
|
||||||
{ WM_WINDOWPOSCHANGED, sent|wparam|optional, SWP_NOSIZE|SWP_NOMOVE|SWP_NOCLIENTSIZE|SWP_NOCLIENTMOVE },
|
{ HCBT_ACTIVATE, hook|optional },
|
||||||
|
{ WM_WINDOWPOSCHANGED, sent|optional },
|
||||||
{ WM_MOVE, sent|optional }, /* Win9x doesn't send it */
|
{ WM_MOVE, sent|optional }, /* Win9x doesn't send it */
|
||||||
{ WM_SIZE, sent|wparam|optional, SIZE_MAXIMIZED }, /* Win9x doesn't send it */
|
{ WM_SIZE, sent|wparam|optional, SIZE_MAXIMIZED }, /* Win9x doesn't send it */
|
||||||
{ WM_WINDOWPOSCHANGING, sent|wparam, SWP_FRAMECHANGED|SWP_NOCOPYBITS|SWP_STATECHANGED },
|
{ WM_WINDOWPOSCHANGING, sent },
|
||||||
|
{ HCBT_SETFOCUS, hook|optional },
|
||||||
{ WM_WINDOWPOSCHANGED, sent|wparam, SWP_FRAMECHANGED|SWP_NOCOPYBITS|SWP_STATECHANGED },
|
{ WM_WINDOWPOSCHANGED, sent|wparam, SWP_FRAMECHANGED|SWP_NOCOPYBITS|SWP_STATECHANGED },
|
||||||
{ WM_MOVE, sent|defwinproc },
|
{ WM_MOVE, sent|defwinproc },
|
||||||
{ WM_SIZE, sent|wparam|defwinproc, SIZE_MAXIMIZED },
|
{ WM_SIZE, sent|wparam|defwinproc, SIZE_MAXIMIZED },
|
||||||
{ HCBT_SETFOCUS, hook },
|
{ HCBT_SETFOCUS, hook|optional },
|
||||||
{ 0 }
|
{ 0 }
|
||||||
};
|
};
|
||||||
static const struct message WmShowMaximized_3[] = {
|
static const struct message WmShowMaximized_3[] = {
|
||||||
|
@ -9755,7 +9797,7 @@ static void test_ShowWindow(void)
|
||||||
/* 29 */ { SW_HIDE, FALSE, WS_MINIMIZE, WmEmptySeq, FALSE },
|
/* 29 */ { SW_HIDE, FALSE, WS_MINIMIZE, WmEmptySeq, FALSE },
|
||||||
/* 30 */ { SW_RESTORE, FALSE, WS_VISIBLE, WmRestore_1, FALSE },
|
/* 30 */ { SW_RESTORE, FALSE, WS_VISIBLE, WmRestore_1, FALSE },
|
||||||
/* 31 */ { SW_RESTORE, TRUE, WS_VISIBLE, WmEmptySeq, FALSE },
|
/* 31 */ { SW_RESTORE, TRUE, WS_VISIBLE, WmEmptySeq, FALSE },
|
||||||
/* 32 */ { SW_HIDE, TRUE, 0, WmHide_3, TRUE },
|
/* 32 */ { SW_HIDE, TRUE, 0, WmHide_3, FALSE },
|
||||||
/* 33 */ { SW_HIDE, FALSE, 0, WmEmptySeq, FALSE },
|
/* 33 */ { SW_HIDE, FALSE, 0, WmEmptySeq, FALSE },
|
||||||
/* 34 */ { SW_NORMALNA, FALSE, 0, WmEmptySeq, FALSE }, /* what does this mean?! */
|
/* 34 */ { SW_NORMALNA, FALSE, 0, WmEmptySeq, FALSE }, /* what does this mean?! */
|
||||||
/* 35 */ { SW_NORMALNA, FALSE, 0, WmEmptySeq, FALSE },
|
/* 35 */ { SW_NORMALNA, FALSE, 0, WmEmptySeq, FALSE },
|
||||||
|
@ -10114,8 +10156,8 @@ static const struct message SetActiveWindowSeq3[] =
|
||||||
{ HCBT_ACTIVATE, hook },
|
{ HCBT_ACTIVATE, hook },
|
||||||
{ WM_WINDOWPOSCHANGING, sent|wparam, SWP_NOSIZE|SWP_NOMOVE|SWP_NOACTIVATE },
|
{ WM_WINDOWPOSCHANGING, sent|wparam, SWP_NOSIZE|SWP_NOMOVE|SWP_NOACTIVATE },
|
||||||
{ WM_WINDOWPOSCHANGING, sent|wparam, SWP_NOSIZE|SWP_NOMOVE },
|
{ WM_WINDOWPOSCHANGING, sent|wparam, SWP_NOSIZE|SWP_NOMOVE },
|
||||||
{ WM_WINDOWPOSCHANGED, sent|wparam, SWP_NOSIZE|SWP_NOMOVE|SWP_NOREDRAW|SWP_NOACTIVATE|SWP_NOCLIENTSIZE|SWP_NOCLIENTMOVE },
|
{ WM_WINDOWPOSCHANGED, sent|wparam|optional, SWP_NOSIZE|SWP_NOMOVE|SWP_NOREDRAW|SWP_NOACTIVATE|SWP_NOCLIENTSIZE|SWP_NOCLIENTMOVE },
|
||||||
{ WM_WINDOWPOSCHANGED, sent|wparam, SWP_NOSIZE|SWP_NOMOVE|SWP_NOREDRAW|SWP_NOCLIENTSIZE|SWP_NOCLIENTMOVE },
|
{ WM_WINDOWPOSCHANGED, sent|wparam|optional, SWP_NOSIZE|SWP_NOMOVE|SWP_NOREDRAW|SWP_NOCLIENTSIZE|SWP_NOCLIENTMOVE },
|
||||||
{ WM_ACTIVATEAPP, sent|wparam, 1 },
|
{ WM_ACTIVATEAPP, sent|wparam, 1 },
|
||||||
{ WM_ACTIVATEAPP, sent|wparam, 1 },
|
{ WM_ACTIVATEAPP, sent|wparam, 1 },
|
||||||
{ WM_NCACTIVATE, sent|wparam, 1 },
|
{ WM_NCACTIVATE, sent|wparam, 1 },
|
||||||
|
|
|
@ -2265,6 +2265,7 @@ static void test_SetActiveWindow(HWND hwnd)
|
||||||
{
|
{
|
||||||
HWND hwnd2;
|
HWND hwnd2;
|
||||||
|
|
||||||
|
flush_events( TRUE );
|
||||||
ShowWindow(hwnd, SW_HIDE);
|
ShowWindow(hwnd, SW_HIDE);
|
||||||
SetFocus(0);
|
SetFocus(0);
|
||||||
SetActiveWindow(0);
|
SetActiveWindow(0);
|
||||||
|
@ -2320,6 +2321,7 @@ static void test_SetForegroundWindow(HWND hwnd)
|
||||||
BOOL ret;
|
BOOL ret;
|
||||||
HWND hwnd2;
|
HWND hwnd2;
|
||||||
|
|
||||||
|
flush_events( TRUE );
|
||||||
ShowWindow(hwnd, SW_HIDE);
|
ShowWindow(hwnd, SW_HIDE);
|
||||||
SetFocus(0);
|
SetFocus(0);
|
||||||
SetActiveWindow(0);
|
SetActiveWindow(0);
|
||||||
|
@ -2551,6 +2553,7 @@ static void test_keyboard_input(HWND hwnd)
|
||||||
MSG msg;
|
MSG msg;
|
||||||
BOOL ret;
|
BOOL ret;
|
||||||
|
|
||||||
|
flush_events( TRUE );
|
||||||
ShowWindow(hwnd, SW_SHOW);
|
ShowWindow(hwnd, SW_SHOW);
|
||||||
UpdateWindow(hwnd);
|
UpdateWindow(hwnd);
|
||||||
flush_events( TRUE );
|
flush_events( TRUE );
|
||||||
|
|
Loading…
Reference in New Issue