From: Santino Mazza smazza@codeweavers.com
XWayland sets _NET_ACTIVE_WINDOW to 0 if the active window is a Wayland client. Because of this the WM_ACTIVATE message is not sent. --- dlls/winex11.drv/window.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c index 78f8dd0e158..f6439a2d663 100644 --- a/dlls/winex11.drv/window.c +++ b/dlls/winex11.drv/window.c @@ -1729,7 +1729,8 @@ BOOL X11DRV_GetWindowStateUpdates( HWND hwnd, UINT *state_cmd, UINT *swp_flags, !thread_data->net_active_window_serial) { *foreground = hwnd_from_window( thread_data->display, thread_data->current_state.net_active_window ); - if (*foreground == old_foreground) *foreground = 0; + if (!*foreground) *foreground = NtUserGetDesktopWindow(); + else if (*foreground == old_foreground) *foreground = 0; }
if ((data = get_win_data( hwnd )))