Since we're watching a specific thread ID for winevents, check that the thread ID passed in the winevent callback function matches the thread we're watching, instead of the thread currently executing.
Signed-off-by: Connor McAdams cmcadams@codeweavers.com --- dlls/user32/tests/msg.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c index 66e6069da54..e47bf83c254 100644 --- a/dlls/user32/tests/msg.c +++ b/dlls/user32/tests/msg.c @@ -110,6 +110,7 @@ static HWINEVENTHOOK hEvent_hook; static HHOOK hKBD_hook; static HHOOK hCBT_hook; static DWORD cbt_hook_thread_id; +static DWORD winevent_hook_thread_id;
static const WCHAR testWindowClassW[] = { 'T','e','s','t','W','i','n','d','o','w','C','l','a','s','s','W',0 }; @@ -10378,7 +10379,7 @@ static void CALLBACK win_event_proc(HWINEVENTHOOK hevent, DWORD thread_id, DWORD event_time) { - ok(thread_id == GetCurrentThreadId(), "we didn't ask for events from other threads\n"); + ok(thread_id == winevent_hook_thread_id, "we didn't ask for events from other threads\n");
/* ignore mouse cursor events */ if (object_id == OBJID_CURSOR) return; @@ -18607,7 +18608,7 @@ START_TEST(msg) } if (!hEvent_hook) win_skip( "no win event hook support\n" );
- cbt_hook_thread_id = GetCurrentThreadId(); + cbt_hook_thread_id = winevent_hook_thread_id = GetCurrentThreadId(); hCBT_hook = SetWindowsHookExA(WH_CBT, cbt_hook_proc, 0, GetCurrentThreadId()); if (!hCBT_hook) win_skip( "cannot set global hook, will skip hook tests\n" );
Signed-off-by: Connor McAdams cmcadams@codeweavers.com --- dlls/user32/tests/msg.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c index e47bf83c254..fa528c86a79 100644 --- a/dlls/user32/tests/msg.c +++ b/dlls/user32/tests/msg.c @@ -17817,6 +17817,7 @@ todo_wine
static const struct message WmSetLayeredStyle[] = { { WM_STYLECHANGING, sent }, + { EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam|optional, 0, 0 }, { WM_STYLECHANGED, sent }, { WM_GETTEXT, sent|defwinproc|optional }, { 0 } @@ -17827,9 +17828,16 @@ static const struct message WmSetLayeredStyle2[] = { { WM_STYLECHANGED, sent }, { WM_WINDOWPOSCHANGING, sent|optional|wparam|defwinproc, SWP_FRAMECHANGED|SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOMOVE|SWP_NOCLIENTSIZE|SWP_NOCLIENTMOVE }, { WM_NCCALCSIZE, sent|optional|wparam|defwinproc, 1 }, + { EVENT_OBJECT_REORDER, winevent_hook|wparam|lparam|optional, 0, 0 }, { WM_WINDOWPOSCHANGED, sent|optional|wparam|defwinproc, SWP_FRAMECHANGED|SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOMOVE }, { WM_MOVE, sent|optional|defwinproc|wparam, 0 }, { WM_SIZE, sent|optional|defwinproc|wparam, SIZE_RESTORED }, + { EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam|optional, 0, 0 }, + { 0 } +}; + +static const struct message WmLayeredWinEmptySeq[] = { + { EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, { 0 } };
@@ -17901,7 +17909,7 @@ static void test_layered_window(void)
ret = pUpdateLayeredWindow( hwnd, 0, &pos, &size, hdc, &src, 0, NULL, ULW_OPAQUE ); ok( ret, "UpdateLayeredWindow failed err %u\n", GetLastError() ); - ok_sequence( WmEmptySeq, "UpdateLayeredWindow", FALSE ); + ok_sequence( WmLayeredWinEmptySeq, "UpdateLayeredWindow", FALSE ); GetWindowRect( hwnd, &rect ); ok( rect.left == 300 && rect.top == 300 && rect.right == 550 && rect.bottom == 550, "wrong window rect %s\n", wine_dbgstr_rect( &rect )); @@ -17913,7 +17921,7 @@ static void test_layered_window(void) pos.y = 200; ret = pUpdateLayeredWindow( hwnd, 0, &pos, &size, hdc, &src, 0, NULL, ULW_OPAQUE ); ok( ret, "UpdateLayeredWindow failed err %u\n", GetLastError() ); - ok_sequence( WmEmptySeq, "UpdateLayeredWindow", FALSE ); + ok_sequence( WmLayeredWinEmptySeq, "UpdateLayeredWindow", FALSE ); GetWindowRect( hwnd, &rect ); ok( rect.left == 300 && rect.top == 200 && rect.right == 450 && rect.bottom == 450, "wrong window rect %s\n", wine_dbgstr_rect( &rect )); @@ -17929,7 +17937,7 @@ static void test_layered_window(void) pos.x = 200; ret = pUpdateLayeredWindow( hwnd, 0, &pos, &size, hdc, &src, 0, NULL, ULW_OPAQUE ); ok( ret, "UpdateLayeredWindow failed err %u\n", GetLastError() ); - ok_sequence( WmEmptySeq, "UpdateLayeredWindow", FALSE ); + ok_sequence( WmLayeredWinEmptySeq, "UpdateLayeredWindow", FALSE ); GetWindowRect( hwnd, &rect ); ok( rect.left == 200 && rect.top == 200 && rect.right == 400 && rect.bottom == 450, "wrong window rect %s\n", wine_dbgstr_rect( &rect )); @@ -18681,6 +18689,7 @@ START_TEST(msg) test_clipboard_viewers(); test_keyflags(); test_hotkey(); + test_layered_window();
/* Fix message sequences before removing 4 lines below */ if (pUnhookWinEvent && hEvent_hook) @@ -18691,7 +18700,6 @@ START_TEST(msg) } hEvent_hook = 0;
- test_layered_window(); test_TrackPopupMenu(); test_TrackPopupMenuEmpty(); test_DoubleSetCapture();
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=98888
Your paranoid android.
=== w10pro64_ar (64 bit report) ===
user32: msg.c:12744: Test failed: message time not advanced: 10a9a 10a9a msg.c:12745: Test failed: coords not changed: (101 101) (101 101) msg.c:12762: Test failed: message time not advanced: 10a9a 10a9a msg.c:12763: Test failed: coords not changed: (101 101) (101 101)
Signed-off-by: Connor McAdams cmcadams@codeweavers.com --- dlls/user32/tests/msg.c | 56 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-)
diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c index fa528c86a79..633bd19dc46 100644 --- a/dlls/user32/tests/msg.c +++ b/dlls/user32/tests/msg.c @@ -2134,30 +2134,47 @@ static const struct message WmSHOWNATopInvisible[] = {
static const struct message WmTrackPopupMenuMinimizeWindow[] = { { HCBT_CREATEWND, hook }, + { EVENT_OBJECT_CREATE, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, { WM_ENTERMENULOOP, sent|wparam|lparam, TRUE, 0 }, + { EVENT_SYSTEM_CAPTURESTART, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, { WM_INITMENU, sent|lparam, 0, 0 }, + { EVENT_SYSTEM_MENUSTART, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, { WM_INITMENUPOPUP, sent|lparam, 0, 0 }, { 0x0093, sent|optional }, { 0x0094, sent|optional }, { 0x0094, sent|optional }, + { EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, + { EVENT_OBJECT_SHOW, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, + { EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam|optional, 0, 0 }, + { EVENT_SYSTEM_MENUPOPUPSTART, winevent_hook|wparam|lparam|winevent_hook_todo, OBJID_CLIENT, 0 }, { WM_ENTERIDLE, sent|wparam, 2 }, { HCBT_MINMAX, hook }, { HCBT_SETFOCUS, hook }, + { EVENT_OBJECT_FOCUS, winevent_hook|wparam|lparam|winevent_hook_todo, OBJID_CLIENT, 0 }, { WM_KILLFOCUS, sent|wparam, 0 }, { WM_GETTEXT, sent|optional }, { WM_WINDOWPOSCHANGING, sent }, { WM_GETMINMAXINFO, sent|defwinproc }, { WM_NCCALCSIZE, sent|wparam|optional, 1 }, + { EVENT_OBJECT_REORDER, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, { WM_WINDOWPOSCHANGED, sent }, { WM_MOVE, sent|defwinproc }, { WM_SIZE, sent|defwinproc }, { WM_GETTEXT, sent|optional }, { WM_NCCALCSIZE, sent|wparam|optional, 1 }, + { EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, + { EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam|optional, 0, 0 }, /* Win7 seems to send this twice. */ + { EVENT_SYSTEM_MINIMIZESTART, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, { WM_CANCELMODE, sent }, + { EVENT_SYSTEM_CAPTUREEND, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, { WM_CAPTURECHANGED, sent|defwinproc }, + { EVENT_SYSTEM_MENUPOPUPEND, winevent_hook|wparam|lparam|winevent_hook_todo, OBJID_CLIENT, 0 }, { HCBT_DESTROYWND, hook }, + { EVENT_OBJECT_HIDE, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, + { EVENT_OBJECT_DESTROY, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, { WM_UNINITMENUPOPUP, sent|defwinproc|lparam, 0, 0 }, { WM_MENUSELECT, sent|defwinproc|wparam|lparam, 0xffff0000, 0 }, + { EVENT_SYSTEM_MENUEND, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, { WM_EXITMENULOOP, sent|defwinproc|wparam|lparam, 1, 0 }, { WM_NCACTIVATE, sent }, { WM_GETTEXT, sent|defwinproc|optional }, @@ -2169,17 +2186,29 @@ static const struct message WmTrackPopupMenuMinimizeWindow[] = {
static const struct message WmTrackPopupMenu[] = { { HCBT_CREATEWND, hook }, + { EVENT_OBJECT_CREATE, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, { WM_ENTERMENULOOP, sent|wparam|lparam, TRUE, 0 }, + { EVENT_SYSTEM_CAPTURESTART, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, { WM_INITMENU, sent|lparam, 0, 0 }, + { EVENT_SYSTEM_MENUSTART, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, { WM_INITMENUPOPUP, sent|lparam, 0, 0 }, { 0x0093, sent|optional }, { 0x0094, sent|optional }, { 0x0094, sent|optional }, + { EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, + { EVENT_OBJECT_SHOW, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, + { EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam|optional, 0, 0 }, + { EVENT_SYSTEM_MENUPOPUPSTART, winevent_hook|wparam|lparam|winevent_hook_todo, OBJID_CLIENT, 0 }, { WM_ENTERIDLE, sent|wparam, 2 }, + { EVENT_SYSTEM_CAPTUREEND, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, { WM_CAPTURECHANGED, sent }, + { EVENT_SYSTEM_MENUPOPUPEND, winevent_hook|wparam|lparam|winevent_hook_todo, OBJID_CLIENT, 0 }, { HCBT_DESTROYWND, hook }, + { EVENT_OBJECT_HIDE, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, + { EVENT_OBJECT_DESTROY, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, { WM_UNINITMENUPOPUP, sent|lparam, 0, 0 }, { WM_MENUSELECT, sent|wparam|lparam, 0xffff0000, 0 }, + { EVENT_SYSTEM_MENUEND, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, { WM_EXITMENULOOP, sent|wparam|lparam, 1, 0 }, { 0 } }; @@ -2190,18 +2219,31 @@ static const struct message WmTrackPopupMenuEsc[] = {
static const struct message WmTrackPopupMenuCapture[] = { { HCBT_CREATEWND, hook }, + { EVENT_OBJECT_CREATE, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, { WM_ENTERMENULOOP, sent|wparam|lparam, TRUE, 0 }, + { EVENT_SYSTEM_CAPTUREEND, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, + { EVENT_SYSTEM_CAPTURESTART, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, { WM_CAPTURECHANGED, sent }, { WM_INITMENU, sent|lparam, 0, 0 }, + { EVENT_SYSTEM_MENUSTART, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, { WM_INITMENUPOPUP, sent|lparam, 0, 0 }, { 0x0093, sent|optional }, { 0x0094, sent|optional }, { 0x0094, sent|optional }, + { EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, + { EVENT_OBJECT_SHOW, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, + { EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam|optional, 0, 0 }, + { EVENT_SYSTEM_MENUPOPUPSTART, winevent_hook|wparam|lparam|winevent_hook_todo, OBJID_CLIENT, 0 }, { WM_ENTERIDLE, sent|wparam, 2 }, + { EVENT_SYSTEM_CAPTUREEND, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, { WM_CAPTURECHANGED, sent }, + { EVENT_SYSTEM_MENUPOPUPEND, winevent_hook|wparam|lparam|winevent_hook_todo, OBJID_CLIENT, 0 }, { HCBT_DESTROYWND, hook }, + { EVENT_OBJECT_HIDE, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, + { EVENT_OBJECT_DESTROY, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, { WM_UNINITMENUPOPUP, sent|lparam, 0, 0 }, { WM_MENUSELECT, sent|wparam|lparam, 0xffff0000, 0 }, + { EVENT_SYSTEM_MENUEND, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, { WM_EXITMENULOOP, sent|wparam|lparam, 1, 0 }, { 0 } }; @@ -2223,16 +2265,28 @@ static const struct message WmTrackPopupMenuEmpty[] = {
static const struct message WmTrackPopupMenuAbort[] = { { HCBT_CREATEWND, hook }, + { EVENT_OBJECT_CREATE, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, { WM_ENTERMENULOOP, sent|wparam|lparam, TRUE, 0 }, + { EVENT_SYSTEM_CAPTURESTART, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, { WM_INITMENU, sent|lparam, 0, 0 }, + { EVENT_SYSTEM_MENUSTART, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, { WM_INITMENUPOPUP, sent|lparam, 0, 0 }, { 0x0093, sent|optional }, { 0x0094, sent|optional }, { 0x0094, sent|optional }, + { EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, + { EVENT_OBJECT_SHOW, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, + { EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam|optional, 0, 0 }, + { EVENT_SYSTEM_MENUPOPUPSTART, winevent_hook|wparam|lparam|winevent_hook_todo, OBJID_CLIENT, 0 }, + { EVENT_SYSTEM_CAPTUREEND, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, { WM_CAPTURECHANGED, sent }, + { EVENT_SYSTEM_MENUPOPUPEND, winevent_hook|wparam|lparam|winevent_hook_todo, OBJID_CLIENT, 0 }, { HCBT_DESTROYWND, hook }, + { EVENT_OBJECT_HIDE, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, + { EVENT_OBJECT_DESTROY, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, { WM_UNINITMENUPOPUP, sent|lparam, 0, 0 }, { WM_MENUSELECT, sent|wparam|lparam, 0xffff0000, 0 }, + { EVENT_SYSTEM_MENUEND, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, { WM_EXITMENULOOP, sent|wparam|lparam, 1, 0 }, { 0 } }; @@ -18690,6 +18744,7 @@ START_TEST(msg) test_keyflags(); test_hotkey(); test_layered_window(); + test_TrackPopupMenu();
/* Fix message sequences before removing 4 lines below */ if (pUnhookWinEvent && hEvent_hook) @@ -18700,7 +18755,6 @@ START_TEST(msg) } hEvent_hook = 0;
- test_TrackPopupMenu(); test_TrackPopupMenuEmpty(); test_DoubleSetCapture(); /* keep it the last test, under Windows it tends to break the tests
Signed-off-by: Connor McAdams cmcadams@codeweavers.com --- dlls/user32/tests/msg.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c index 633bd19dc46..abb0dc1d97f 100644 --- a/dlls/user32/tests/msg.c +++ b/dlls/user32/tests/msg.c @@ -2250,15 +2250,22 @@ static const struct message WmTrackPopupMenuCapture[] = {
static const struct message WmTrackPopupMenuEmpty[] = { { HCBT_CREATEWND, hook }, + { EVENT_OBJECT_CREATE, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, { WM_ENTERMENULOOP, sent|wparam|lparam, TRUE, 0 }, + { EVENT_SYSTEM_CAPTURESTART, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, { WM_INITMENU, sent|lparam, 0, 0 }, + { EVENT_SYSTEM_MENUSTART, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, { WM_INITMENUPOPUP, sent|lparam, 0, 0 }, { 0x0093, sent|optional }, { 0x0094, sent|optional }, { 0x0094, sent|optional }, + { EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, + { EVENT_SYSTEM_MENUEND, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, + { EVENT_SYSTEM_CAPTUREEND, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, { WM_CAPTURECHANGED, sent }, { WM_EXITMENULOOP, sent|wparam|lparam, 1, 0 }, { HCBT_DESTROYWND, hook }, + { EVENT_OBJECT_DESTROY, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, { WM_UNINITMENUPOPUP, sent|lparam, 0, 0 }, { 0 } }; @@ -18745,6 +18752,7 @@ START_TEST(msg) test_hotkey(); test_layered_window(); test_TrackPopupMenu(); + test_TrackPopupMenuEmpty();
/* Fix message sequences before removing 4 lines below */ if (pUnhookWinEvent && hEvent_hook) @@ -18755,7 +18763,6 @@ START_TEST(msg) } hEvent_hook = 0;
- test_TrackPopupMenuEmpty(); test_DoubleSetCapture(); /* keep it the last test, under Windows it tends to break the tests * which rely on active/foreground windows being correct.
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=98890
Your paranoid android.
=== w10pro64_ja (64 bit report) ===
user32: msg.c:12805: Test failed: message time not advanced: f750 f750 msg.c:12806: Test failed: coords not changed: (101 101) (101 101) msg.c:12823: Test failed: message time not advanced: f750 f750 msg.c:12824: Test failed: coords not changed: (101 101) (101 101)
Signed-off-by: Connor McAdams cmcadams@codeweavers.com --- dlls/user32/tests/msg.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-)
diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c index abb0dc1d97f..9602649600f 100644 --- a/dlls/user32/tests/msg.c +++ b/dlls/user32/tests/msg.c @@ -18458,6 +18458,9 @@ static void test_InSendMessage(void)
static const struct message DoubleSetCaptureSeq[] = { + { EVENT_SYSTEM_CAPTURESTART, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, + { EVENT_SYSTEM_CAPTUREEND, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, + { EVENT_SYSTEM_CAPTURESTART, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, { WM_CAPTURECHANGED, sent }, { 0 } }; @@ -18753,16 +18756,6 @@ START_TEST(msg) test_layered_window(); test_TrackPopupMenu(); test_TrackPopupMenuEmpty(); - - /* Fix message sequences before removing 4 lines below */ - if (pUnhookWinEvent && hEvent_hook) - { - ret = pUnhookWinEvent(hEvent_hook); - ok( ret, "UnhookWinEvent error %d\n", GetLastError()); - pUnhookWinEvent = 0; - } - hEvent_hook = 0; - test_DoubleSetCapture(); /* keep it the last test, under Windows it tends to break the tests * which rely on active/foreground windows being correct.
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=98891
Your paranoid android.
=== w10pro64 (64 bit report) ===
user32: msg.c:10795: Test failed: expected count > 1, got 1.