From: Rémi Bernon <rbernon(a)codeweavers.com> --- dlls/winex11.drv/window.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c index d779c031978..e8e01a7f053 100644 --- a/dlls/winex11.drv/window.c +++ b/dlls/winex11.drv/window.c @@ -3145,9 +3145,6 @@ void X11DRV_WindowPosChanged( HWND hwnd, HWND insert_after, HWND owner_hint, UIN (!(new_style & WS_MINIMIZE) && !is_window_rect_mapped( &new_rects->window ) && is_window_rect_mapped( &old_rects.window ))) { window_set_wm_state( data, WithdrawnState, FALSE ); - release_win_data( data ); - if (was_fullscreen) NtUserClipCursor( NULL ); - if (!(data = get_win_data( hwnd ))) return; } } @@ -3178,8 +3175,13 @@ void X11DRV_WindowPosChanged( HWND hwnd, HWND insert_after, HWND owner_hint, UIN update_net_wm_states( data ); } + /* if window was fullscreen and is being hidden, release cursor clipping */ + was_fullscreen &= data->desired_state.wm_state != NormalState; + XFlush( data->display ); /* make sure changes are done before we start painting again */ release_win_data( data ); + + if (was_fullscreen) NtUserClipCursor( NULL ); } /* check if the window icon should be hidden (i.e. moved off-screen) */ -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/9185