Rémi Bernon (@rbernon) commented about dlls/winex11.drv/window.c:
} else if (old_style & (WS_MINIMIZE | WS_MAXIMIZE)) { - BOOL activate = (old_style & (WS_MINIMIZE | WS_VISIBLE)) == (WS_MINIMIZE | WS_VISIBLE); + BOOL activate = ((old_style & (WS_MINIMIZE | WS_VISIBLE)) == (WS_MINIMIZE | WS_VISIBLE)) && get_active_window() != data->hwnd; TRACE( "restoring win %p/%lx\n", data->hwnd, data->whole_window ); return MAKELONG(SC_RESTORE, activate);
Hmm, I don't think this belongs to winex11, also why is this necessary? How can the window be active already? Also, I guess this has been restored from the revert, but I think the decision to activate the window is also probably not right. Any window that is restored by the host WM is likely going to activate and if it is important that it gets activated before being restored we should do it unconditionally. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/10725#note_137718