We should probably change the foreground window even if a different window is already foreground, tracking the last user input time for instance, but this would be a much larger impacting change.
From: Rémi Bernon rbernon@codeweavers.com
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56073 --- dlls/user32/tests/input.c | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+)
diff --git a/dlls/user32/tests/input.c b/dlls/user32/tests/input.c index f92b839f1cb..f8890d0d6d0 100644 --- a/dlls/user32/tests/input.c +++ b/dlls/user32/tests/input.c @@ -5386,6 +5386,42 @@ static void test_ClipCursor( char **argv ) if (!EqualRect( &rect, &virtual_rect )) ok_ret( 1, ClipCursor( NULL ) ); }
+static void test_SetFocus_activate(void) +{ + HWND hwnd, tmp_hwnd, focus, foreground; + BOOL ret; + + hwnd = CreateWindowW( L"static", L"static", WS_OVERLAPPEDWINDOW, + 100, 100, 200, 200, 0, 0, 0, NULL ); + ok( !!hwnd, "CreateWindowW failed, error %lu\n", GetLastError() ); + foreground = GetForegroundWindow(); + focus = GetFocus(); + + ret = ShowWindow( hwnd, SW_SHOWNA ); + ok( !ret, "ShowWindow succeeded\n" ); + tmp_hwnd = GetForegroundWindow(); + ok( tmp_hwnd == foreground, "GetForegroundWindow returned %p\n", tmp_hwnd ); + tmp_hwnd = GetFocus(); + ok( tmp_hwnd == focus, "GetFocus returned %p\n", tmp_hwnd ); + + tmp_hwnd = SetFocus( hwnd ); + ok( tmp_hwnd == hwnd, "SetFocus returned %p\n", tmp_hwnd ); + tmp_hwnd = GetForegroundWindow(); + todo_wine + ok( tmp_hwnd == hwnd, "GetForegroundWindow returned %p\n", tmp_hwnd ); + tmp_hwnd = GetFocus(); + ok( tmp_hwnd == hwnd, "GetFocus returned %p\n", tmp_hwnd ); + + DestroyWindow( hwnd ); +} + +static void test_SetFocus( char **argv ) +{ + /* run the test_SetFocus_activate in a new desktop, as it depends on the process + * not being foreground yet, and to avoid spurious foreground window failures */ + run_in_desktop( argv, "test_SetFocus_activate", 1 ); +} + START_TEST(input) { char **argv; @@ -5408,6 +5444,8 @@ START_TEST(input) return test_ClipCursor_process(); if (argc >= 3 && !strcmp( argv[2], "test_ClipCursor_desktop" )) return test_ClipCursor_desktop( argv ); + if (argc >= 3 && !strcmp( argv[2], "test_SetFocus_activate" )) + return test_SetFocus_activate();
test_SendInput(); test_Input_blackbox(); @@ -5431,6 +5469,7 @@ START_TEST(input) test_RegisterRawInputDevices(); test_rawinput(argv[0]); test_DefRawInputProc(); + test_SetFocus( argv );
if(pGetMouseMovePointsEx) test_GetMouseMovePointsEx( argv );
From: Rémi Bernon rbernon@codeweavers.com
We should probably change the foreground window even if a different window is already foreground, tracking the last user input time for instance, but this would be a much larger impacting change.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56073 --- dlls/user32/tests/input.c | 1 - dlls/win32u/defwnd.c | 2 +- dlls/win32u/input.c | 16 ++++++++++++---- dlls/win32u/message.c | 2 +- dlls/win32u/win32u_private.h | 2 +- dlls/win32u/window.c | 6 +++--- 6 files changed, 18 insertions(+), 11 deletions(-)
diff --git a/dlls/user32/tests/input.c b/dlls/user32/tests/input.c index f8890d0d6d0..50b77bb9f2b 100644 --- a/dlls/user32/tests/input.c +++ b/dlls/user32/tests/input.c @@ -5407,7 +5407,6 @@ static void test_SetFocus_activate(void) tmp_hwnd = SetFocus( hwnd ); ok( tmp_hwnd == hwnd, "SetFocus returned %p\n", tmp_hwnd ); tmp_hwnd = GetForegroundWindow(); - todo_wine ok( tmp_hwnd == hwnd, "GetForegroundWindow returned %p\n", tmp_hwnd ); tmp_hwnd = GetFocus(); ok( tmp_hwnd == hwnd, "GetFocus returned %p\n", tmp_hwnd ); diff --git a/dlls/win32u/defwnd.c b/dlls/win32u/defwnd.c index cba5f02c02e..253cc81fdf0 100644 --- a/dlls/win32u/defwnd.c +++ b/dlls/win32u/defwnd.c @@ -2194,7 +2194,7 @@ static LRESULT handle_nc_lbutton_down( HWND hwnd, WPARAM wparam, LPARAM lparam ) top = parent; }
- if (set_foreground_window( top, TRUE ) || (get_active_window() == top)) + if (set_foreground_window( top, TRUE, TRUE ) || (get_active_window() == top)) send_message( hwnd, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, lparam ); break; } diff --git a/dlls/win32u/input.c b/dlls/win32u/input.c index 3ee46f0bfcf..d757d07bfbf 100644 --- a/dlls/win32u/input.c +++ b/dlls/win32u/input.c @@ -2034,7 +2034,15 @@ HWND WINAPI NtUserSetFocus( HWND hwnd ) /* activate hwndTop if needed. */ if (hwndTop != get_active_window()) { - if (!set_active_window( hwndTop, NULL, FALSE, FALSE )) return 0; + BOOL ret; + + /* make the process foreground if no other process is */ + if (NtUserGetForegroundWindow() == NtUserGetDesktopWindow()) + ret = set_foreground_window( hwndTop, FALSE, FALSE ); + else + ret = set_active_window( hwnd, NULL, FALSE, FALSE ); + if (!ret) return 0; + if (!is_window( hwnd )) return 0; /* Abort if window destroyed */
/* Do not change focus if the window is no longer active */ @@ -2054,7 +2062,7 @@ HWND WINAPI NtUserSetFocus( HWND hwnd ) /******************************************************************* * set_foreground_window */ -BOOL set_foreground_window( HWND hwnd, BOOL mouse ) +BOOL set_foreground_window( HWND hwnd, BOOL mouse, BOOL set_focus ) { BOOL ret, send_msg_old = FALSE, send_msg_new = FALSE; HWND previous = 0; @@ -2079,13 +2087,13 @@ BOOL set_foreground_window( HWND hwnd, BOOL mouse ) NtUserMessageCall( previous, WM_WINE_SETACTIVEWINDOW, 0, 0, 0, NtUserSendNotifyMessage, FALSE ); else if (send_msg_new) /* old window belongs to us but new one to other thread */ - ret = set_active_window( 0, NULL, mouse, TRUE ); + ret = set_active_window( 0, NULL, mouse, set_focus );
if (send_msg_new) /* new window belongs to other thread */ NtUserMessageCall( hwnd, WM_WINE_SETACTIVEWINDOW, (WPARAM)hwnd, 0, 0, NtUserSendNotifyMessage, FALSE ); else /* new window belongs to us */ - ret = set_active_window( hwnd, NULL, mouse, TRUE ); + ret = set_active_window( hwnd, NULL, mouse, set_focus ); } return ret; } diff --git a/dlls/win32u/message.c b/dlls/win32u/message.c index 91f836a60bd..74bdab476e7 100644 --- a/dlls/win32u/message.c +++ b/dlls/win32u/message.c @@ -2623,7 +2623,7 @@ static BOOL process_mouse_message( MSG *msg, UINT hw_id, ULONG_PTR extra_info, H /* fall through */ case MA_ACTIVATE: case 0: - if (!set_foreground_window( hwndTop, TRUE )) eat_msg = TRUE; + if (!set_foreground_window( hwndTop, TRUE, TRUE )) eat_msg = TRUE; break; default: WARN( "unknown WM_MOUSEACTIVATE code %d\n", ret ); diff --git a/dlls/win32u/win32u_private.h b/dlls/win32u/win32u_private.h index b08c0ceb716..ff22f1e5fa3 100644 --- a/dlls/win32u/win32u_private.h +++ b/dlls/win32u/win32u_private.h @@ -102,7 +102,7 @@ extern BOOL release_capture(void); extern BOOL set_capture_window( HWND hwnd, UINT gui_flags, HWND *prev_ret ); extern BOOL set_caret_blink_time( unsigned int time ); extern BOOL set_caret_pos( int x, int y ); -extern BOOL set_foreground_window( HWND hwnd, BOOL mouse ); +extern BOOL set_foreground_window( HWND hwnd, BOOL mouse, BOOL set_focus ); extern void toggle_caret( HWND hwnd ); extern void update_mouse_tracking_info( HWND hwnd ); extern BOOL get_clip_cursor( RECT *rect ); diff --git a/dlls/win32u/window.c b/dlls/win32u/window.c index 69dd8caba5d..7af092e5acd 100644 --- a/dlls/win32u/window.c +++ b/dlls/win32u/window.c @@ -3468,7 +3468,7 @@ BOOL set_window_pos( WINDOWPOS *winpos, int parent_x, int parent_y ) if ((get_window_long( winpos->hwnd, GWL_STYLE ) & (WS_CHILD | WS_POPUP)) == WS_CHILD) send_message( winpos->hwnd, WM_CHILDACTIVATE, 0, 0 ); else - set_foreground_window( winpos->hwnd, FALSE ); + set_foreground_window( winpos->hwnd, FALSE, TRUE ); }
if(!(orig_flags & SWP_DEFERERASE)) @@ -3808,7 +3808,7 @@ static void activate_other_window( HWND hwnd ) TRACE( "win = %p fg = %p\n", hwnd_to, fg ); if (!fg || hwnd == fg) { - if (set_foreground_window( hwnd_to, FALSE )) return; + if (set_foreground_window( hwnd_to, FALSE, TRUE )) return; } if (NtUserSetActiveWindow( hwnd_to )) NtUserSetActiveWindow( 0 ); } @@ -5464,7 +5464,7 @@ ULONG_PTR WINAPI NtUserCallHwnd( HWND hwnd, DWORD code ) return is_window_visible( hwnd );
case NtUserCallHwnd_SetForegroundWindow: - return set_foreground_window( hwnd, FALSE ); + return set_foreground_window( hwnd, FALSE, TRUE );
case NtUserCallHwnd_SetProgmanWindow: return HandleToUlong( set_progman_window( hwnd ));
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The tests also ran into some preexisting test failures. If you know how to fix them that would be helpful. See the TestBot job for the details:
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=141557
Your paranoid android.
=== w10pro64 (64 bit report) ===
user32: input.c:4593: Test failed: 4:0: WaitForSingleObject returned 258 input.c:4537: Test failed: 4:0: expected that X highest bit is set, got 0 input.c:4538: Test failed: 4:0: expected that X keystate is set input.c:4538: Test failed: 4:0: expected that X keystate is set input.c:4545: Test failed: 4:0: expected that X keystate is set input.c:4545: Test failed: 4:0: expected that X keystate is set input.c:4537: Test failed: 4:1: expected that X highest bit is set, got 0x1 input.c:4538: Test failed: 4:1: expected that X keystate is set input.c:4538: Test failed: 4:1: expected that X keystate is set input.c:4545: Test failed: 4:1: expected that X keystate is set input.c:4545: Test failed: 4:1: expected that X keystate is set input.c:4537: Test failed: 4:2: expected that X highest bit is set, got 0 input.c:4538: Test failed: 4:2: expected that X keystate is set input.c:4538: Test failed: 4:2: expected that X keystate is set input.c:4545: Test failed: 4:2: expected that X keystate is set input.c:4545: Test failed: 4:2: expected that X keystate is set input.c:4537: Test failed: 4:3: expected that X highest bit is set, got 0x1 input.c:4538: Test failed: 4:3: expected that X keystate is set input.c:4538: Test failed: 4:3: expected that X keystate is set input.c:4545: Test failed: 4:3: expected that X keystate is set input.c:4545: Test failed: 4:3: expected that X keystate is set input.c:4537: Test failed: 5:0: expected that X highest bit is set, got 0 input.c:4538: Test failed: 5:0: expected that X keystate is set input.c:4538: Test failed: 5:0: expected that X keystate is set input.c:4545: Test failed: 5:0: expected that X keystate is set input.c:4545: Test failed: 5:0: expected that X keystate is set input.c:4537: Test failed: 5:1: expected that X highest bit is set, got 0x1 input.c:4538: Test failed: 5:1: expected that X keystate is set input.c:4538: Test failed: 5:1: expected that X keystate is set input.c:4545: Test failed: 5:1: expected that X keystate is set input.c:4545: Test failed: 5:1: expected that X keystate is set input.c:4537: Test failed: 5:2: expected that X highest bit is set, got 0 input.c:4538: Test failed: 5:2: expected that X keystate is set input.c:4538: Test failed: 5:2: expected that X keystate is set input.c:4545: Test failed: 5:2: expected that X keystate is set input.c:4545: Test failed: 5:2: expected that X keystate is set input.c:4537: Test failed: 5:3: expected that X highest bit is set, got 0x1 input.c:4538: Test failed: 5:3: expected that X keystate is set input.c:4538: Test failed: 5:3: expected that X keystate is set input.c:4545: Test failed: 5:3: expected that X keystate is set input.c:4545: Test failed: 5:3: expected that X keystate is set input.c:4537: Test failed: 6:0: expected that X highest bit is set, got 0 input.c:4538: Test failed: 6:0: expected that X keystate is set input.c:4538: Test failed: 6:0: expected that X keystate is set input.c:4545: Test failed: 6:0: expected that X keystate is set input.c:4545: Test failed: 6:0: expected that X keystate is set input.c:4537: Test failed: 6:1: expected that X highest bit is set, got 0x1 input.c:4538: Test failed: 6:1: expected that X keystate is set input.c:4538: Test failed: 6:1: expected that X keystate is set input.c:4545: Test failed: 6:1: expected that X keystate is set input.c:4545: Test failed: 6:1: expected that X keystate is set input.c:4537: Test failed: 6:2: expected that X highest bit is set, got 0 input.c:4538: Test failed: 6:2: expected that X keystate is set input.c:4538: Test failed: 6:2: expected that X keystate is set input.c:4545: Test failed: 6:2: expected that X keystate is set input.c:4545: Test failed: 6:2: expected that X keystate is set input.c:4537: Test failed: 6:3: expected that X highest bit is set, got 0x1 input.c:4538: Test failed: 6:3: expected that X keystate is set input.c:4538: Test failed: 6:3: expected that X keystate is set input.c:4545: Test failed: 6:3: expected that X keystate is set input.c:4545: Test failed: 6:3: expected that X keystate is set input.c:4537: Test failed: 7:0: expected that X highest bit is set, got 0 input.c:4538: Test failed: 7:0: expected that X keystate is set input.c:4538: Test failed: 7:0: expected that X keystate is set input.c:4545: Test failed: 7:0: expected that X keystate is set input.c:4545: Test failed: 7:0: expected that X keystate is set input.c:4537: Test failed: 7:1: expected that X highest bit is set, got 0x1 input.c:4538: Test failed: 7:1: expected that X keystate is set input.c:4538: Test failed: 7:1: expected that X keystate is set input.c:4545: Test failed: 7:1: expected that X keystate is set input.c:4545: Test failed: 7:1: expected that X keystate is set input.c:4537: Test failed: 7:2: expected that X highest bit is set, got 0 input.c:4538: Test failed: 7:2: expected that X keystate is set input.c:4538: Test failed: 7:2: expected that X keystate is set input.c:4545: Test failed: 7:2: expected that X keystate is set input.c:4545: Test failed: 7:2: expected that X keystate is set input.c:4537: Test failed: 7:3: expected that X highest bit is set, got 0x1 input.c:4538: Test failed: 7:3: expected that X keystate is set input.c:4538: Test failed: 7:3: expected that X keystate is set input.c:4545: Test failed: 7:3: expected that X keystate is set input.c:4545: Test failed: 7:3: expected that X keystate is set input.c:4537: Test failed: 8:0: expected that X highest bit is set, got 0 input.c:4538: Test failed: 8:0: expected that X keystate is set input.c:4538: Test failed: 8:0: expected that X keystate is set input.c:4545: Test failed: 8:0: expected that X keystate is set input.c:4545: Test failed: 8:0: expected that X keystate is set input.c:4537: Test failed: 8:1: expected that X highest bit is set, got 0x1 input.c:4538: Test failed: 8:1: expected that X keystate is set input.c:4538: Test failed: 8:1: expected that X keystate is set input.c:4545: Test failed: 8:1: expected that X keystate is set input.c:4545: Test failed: 8:1: expected that X keystate is set input.c:4537: Test failed: 8:2: expected that X highest bit is set, got 0 input.c:4538: Test failed: 8:2: expected that X keystate is set input.c:4538: Test failed: 8:2: expected that X keystate is set input.c:4545: Test failed: 8:2: expected that X keystate is set input.c:4545: Test failed: 8:2: expected that X keystate is set input.c:4537: Test failed: 8:3: expected that X highest bit is set, got 0x1 input.c:4538: Test failed: 8:3: expected that X keystate is set input.c:4538: Test failed: 8:3: expected that X keystate is set input.c:4545: Test failed: 8:3: expected that X keystate is set input.c:4545: Test failed: 8:3: expected that X keystate is set
=== debian11b (64 bit WoW report) ===
comctl32: combo.c:1142: Test failed: Wrong handle set by CBN_SETFOCUS; got 0000000000000000 combo.c:1143: Test failed: hEdit should have keyboard focus combo.c:1148: Test failed: Wrong handle set by CBN_KILLFOCUS; got 0000000000000000 combo.c:1149: Test failed: hButton should have keyboard focus combo.c:1155: Test failed: Wrong handle set by CBN_SETFOCUS; got 0000000000000000 combo.c:1156: Test failed: hEdit should have keyboard focus combo.c:1163: Test failed: Wrong handle set by CBN_KILLFOCUS; got 0000000000000000 combo.c:1164: Test failed: hButton should have keyboard focus combo.c:1142: Test failed: Wrong handle set by CBN_SETFOCUS; got 0000000000000000 combo.c:1143: Test failed: hEdit should have keyboard focus combo.c:1148: Test failed: Wrong handle set by CBN_KILLFOCUS; got 0000000000000000 combo.c:1149: Test failed: hButton should have keyboard focus combo.c:1155: Test failed: Wrong handle set by CBN_SETFOCUS; got 0000000000000000 combo.c:1156: Test failed: hEdit should have keyboard focus combo.c:1163: Test failed: Wrong handle set by CBN_KILLFOCUS; got 0000000000000000 combo.c:1164: Test failed: hButton should have keyboard focus edit.c:830: Test failed: SetFocus failed unexpectedly, expected non-zero, got NULL edit.c:2500: Test failed: Expected 444, got 555 edit.c:2514: Test failed: Expected 444, got 555 edit.c:2516: Test failed: Expected 444, got 555 edit.c:2524: Test failed: Expected 444, got 555 edit.c:2538: Test failed: Expected 444, got 555 edit.c:2540: Test failed: Expected 444, got 555 edit.c:2544: Test failed: Expected 22, got 44 edit.c:2546: Test failed: Expected 33, got 44 edit.c:2555: Test failed: Expected 2222, got 4444 edit.c:2557: Test failed: Expected 1111, got 4444 edit.c:2559: Test failed: Expected 2222, got 4444 edit.c:2561: Test failed: Expected 11, got 22 edit.c:2572: Test failed: Expected 444, got 555 edit.c:2574: Test failed: Expected 444, got 555 edit.c:2578: Test failed: Expected 444, got 555 edit.c:2580: Test failed: Expected 444, got 555 edit.c:2582: Test failed: Expected 444, got 555 edit.c:2586: Test failed: Expected 444, got 555 edit.c:2588: Test failed: Expected 444, got 555 edit.c:2590: Test failed: Expected 444, got 555 edit.c:2603: Test failed: Expected 444, got 555 edit.c:2607: Test failed: Expected 444, got 555 edit.c:2609: Test failed: Expected 444, got 555 edit.c:2611: Test failed: Expected 444, got 555 edit.c:2619: Test failed: Expected 444, got 555 edit.c:2627: Test failed: Expected 444, got 555 edit.c:2631: Test failed: Expected 444, got 555 edit.c:2633: Test failed: Expected 444, got 555 edit.c:2635: Test failed: Expected 444, got 555 edit.c:2643: Test failed: Expected 444, got 555 propsheet.c:424: Test failed: Focus should have been set to the Next button. Expected: 12324, Found: 12323 taskdialog: Timeout
user32: dialog.c:818: Test failed: Focus did not move to first button dialog.c:821: Test failed: Focus did not move to cancel button dialog.c:825: Test failed: ENTER did not terminate dialog.c:846: Test failed: Did not receive button 1 click notification dialog.c:851: Test failed: Did not receive button 1 click notification dialog.c:856: Test failed: Did not receive button 1 click notification dialog.c:863: Test failed: Did not receive button 1 click notification dialog.c:685: Test failed: Focus didn't set on Edit control dialog.c:689: Test failed: Focus didn't move to first button dialog.c:699: Test failed: Button1's style not set to BS_DEFPUSHBUTTON dialog.c:700: Test failed: Button2's style not set to BS_PUSHBUTTON dialog.c:704: Test failed: Focus didn't move to second button dialog.c:719: Test failed: Focus didn't move to Edit control dialog.c:1081: Test failed: Error in initial focus when WM_INITDIALOG returned TRUE: Expected the second button (0000000000280170), got a null handle (0000000000000000). dialog.c:1148: Test failed: Focus not set to label, focus=0000000000000000 dialog=0000000000390168 label=000000000040013A dialog.c:1163: Test failed: Focus not set to label on WM_SETFOCUS, focus=0000000000000000 dialog=00000000003A0168 label=000000000041013A dialog.c:1186: Test failed: Focus not set to edit, focus=0000000000000000, dialog=00000000003B0168, edit=000000000042013A dialog.c:1213: Test failed: Focus not set to edit, focus=0000000000000000, dialog=00000000003C0168, edit=000000000043013A dialog.c:2228: Test failed: type 0x1: got 0, expected 0x10101 dialog.c:2232: Test failed: type 0x1: Unexpected window text "OK" dialog.c:2235: Test failed: type 0x1: Expected static control dialog.c:2241: Test failed: type 0x1: Unexpected window text "?$" dialog.c:2228: Test failed: type 0x1: got 0, expected 0x10101 dialog.c:2232: Test failed: type 0x1: Unexpected window text "Cancel" dialog.c:2235: Test failed: type 0x1: Expected static control dialog.c:2241: Test failed: type 0x1: Unexpected window text "?$" dialog.c:2228: Test failed: type 0x1001: got 0, expected 0x10108 dialog.c:2232: Test failed: type 0x1001: Unexpected window text "Cancel" dialog.c:2235: Test failed: type 0x1001: Expected static control dialog.c:2241: Test failed: type 0x1001: Unexpected window text "?$" dialog.c:2228: Test failed: type 0x3001: got 0, expected 0x10101 dialog.c:2232: Test failed: type 0x3001: Unexpected window text "Cancel" dialog.c:2235: Test failed: type 0x3001: Expected static control dialog.c:2241: Test failed: type 0x3001: Unexpected window text "?$" dialog.c:2228: Test failed: type 0x40001: got 0, expected 0x10109 dialog.c:2232: Test failed: type 0x40001: Unexpected window text "Cancel" dialog.c:2235: Test failed: type 0x40001: Expected static control dialog.c:2241: Test failed: type 0x40001: Unexpected window text "?$" dialog.c:2228: Test failed: type 0x41001: got 0, expected 0x10108 dialog.c:2232: Test failed: type 0x41001: Unexpected window text "Cancel" dialog.c:2235: Test failed: type 0x41001: Expected static control dialog.c:2241: Test failed: type 0x41001: Unexpected window text "?$" dialog.c:2228: Test failed: type 0x42001: got 0, expected 0x10109 dialog.c:2232: Test failed: type 0x42001: Unexpected window text "Cancel" dialog.c:2235: Test failed: type 0x42001: Expected static control dialog.c:2241: Test failed: type 0x42001: Unexpected window text "?$" dialog.c:2228: Test failed: type 0x43001: got 0, expected 0x10109 dialog.c:2232: Test failed: type 0x43001: Unexpected window text "Cancel" dialog.c:2235: Test failed: type 0x43001: Expected static control dialog.c:2241: Test failed: type 0x43001: Unexpected window text "?$" edit.c:804: Test failed: SetFocus failed unexpectedly, expected non-zero, got NULL edit.c:2428: Test failed: Expected 444, got 555 edit.c:2442: Test failed: Expected 444, got 555 edit.c:2444: Test failed: Expected 444, got 555 edit.c:2452: Test failed: Expected 444, got 555 edit.c:2466: Test failed: Expected 444, got 555 edit.c:2468: Test failed: Expected 444, got 555 edit.c:2472: Test failed: Expected 22, got 44 edit.c:2474: Test failed: Expected 33, got 44 edit.c:2483: Test failed: Expected 2222, got 4444 edit.c:2485: Test failed: Expected 1111, got 4444 edit.c:2487: Test failed: Expected 2222, got 4444 edit.c:2489: Test failed: Expected 11, got 22 edit.c:2500: Test failed: Expected 444, got 555 edit.c:2502: Test failed: Expected 444, got 555 edit.c:2506: Test failed: Expected 444, got 555 edit.c:2508: Test failed: Expected 444, got 555 edit.c:2510: Test failed: Expected 444, got 555 edit.c:2514: Test failed: Expected 444, got 555 edit.c:2516: Test failed: Expected 444, got 555 edit.c:2518: Test failed: Expected 444, got 555 edit.c:2531: Test failed: Expected 444, got 555 edit.c:2535: Test failed: Expected 444, got 555 edit.c:2537: Test failed: Expected 444, got 555 edit.c:2539: Test failed: Expected 444, got 555 edit.c:2547: Test failed: Expected 444, got 555 edit.c:2555: Test failed: Expected 444, got 555 edit.c:2559: Test failed: Expected 444, got 555 edit.c:2561: Test failed: Expected 444, got 555 edit.c:2563: Test failed: Expected 444, got 555 edit.c:2571: Test failed: Expected 444, got 555 msg.c:19194: Test failed: SetFocus on a child window: 3: the msg 0x030f was expected in parent msg.c:19195: Test failed: expected old focus 0000000000830098, got 0000000000000000 msg.c:19196: Test failed: expected active 0000000000830098, got 00000000001C012A msg.c:19197: Test failed: expected focus 00000000001C012A, got 0000000000000000 msg.c:19201: Test failed: SetFocus on a parent window: 1: the msg 0x0008 was expected, but got hook 0x0005 instead msg.c:19201: Test failed: SetFocus on a parent window: 1: the msg 0x0008 was expected, but got msg 0x0086 instead msg.c:19201: Test failed: SetFocus on a parent window: 1: the msg 0x0008 was expected, but got msg 0x0006 instead msg.c:19201: Test failed: SetFocus on a parent window: 1: the msg 0x0008 was expected, but got msg 0x030f instead msg.c:19201: Test failed: SetFocus on a parent window: 1: the msg 0x0008 was expected, but got msg 0x0086 instead msg.c:19201: Test failed: SetFocus on a parent window: 1: the msg 0x0008 was expected, but got msg 0x0006 instead msg.c:19201: Test failed: SetFocus on a parent window: 1: the msg 0x0008 was expected, but got hook 0x0009 instead msg.c:19201: Test failed: SetFocus on a parent window: 1: the msg 0x0008 was expected, but got msg 0x0007 instead msg.c:19201: Test failed: SetFocus on a parent window: 2: the winevent_hook 0x8005 was expected, but got msg 0x0007 instead msg.c:19201: Test failed: SetFocus on a parent window: 3: the msg 0x0007 should NOT have been sent by DefWindowProc msg.c:19202: Test failed: expected old focus 00000000001C012A, got 0000000000830098 win.c:807: Test failed: GetActiveWindow 0000000001000064, expected 00000000005E0132 win.c:808: Test failed: GetFocus 0000000000000000, expected 0000000001000064 win.c:3719: Test failed: child window 00000000023C0050 should be active win.c:3720: Test failed: Focus should be on child2 0000000001090064 win.c:3722: Test failed: parent window 000000000381015E should be active
Well, looks like this still break some other tests. Probably a bit unrealistic to hope for a simple fix.
This merge request was closed by Rémi Bernon.