From: William Horvath william@horvath.blog
Otherwise, the client rect in needs_client_window_clipping is outdated. --- dlls/winex11.drv/window.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c index 1d43c4edbdb..a5950ef1a70 100644 --- a/dlls/winex11.drv/window.c +++ b/dlls/winex11.drv/window.c @@ -2930,9 +2930,7 @@ void X11DRV_WindowPosChanged( HWND hwnd, HWND insert_after, HWND owner_hint, UIN struct window_rects old_rects; BOOL was_fullscreen;
- sync_gl_drawable( hwnd, FALSE ); - - if (!(data = get_win_data( hwnd ))) return; + if (!(data = get_win_data( hwnd ))) goto done;
old_style = new_style & ~(WS_VISIBLE | WS_MINIMIZE | WS_MAXIMIZE); if (data->desired_state.wm_state != WithdrawnState) old_style |= WS_VISIBLE; @@ -2954,7 +2952,7 @@ void X11DRV_WindowPosChanged( HWND hwnd, HWND insert_after, HWND owner_hint, UIN if (!data->whole_window) { release_win_data( data ); - return; + goto done; }
if (old_style & WS_VISIBLE) @@ -2965,7 +2963,7 @@ void X11DRV_WindowPosChanged( HWND hwnd, HWND insert_after, HWND owner_hint, UIN release_win_data( data ); unmap_window( hwnd ); if (was_fullscreen) NtUserClipCursor( NULL ); - if (!(data = get_win_data( hwnd ))) return; + if (!(data = get_win_data( hwnd ))) goto done; } }
@@ -3003,7 +3001,7 @@ void X11DRV_WindowPosChanged( HWND hwnd, HWND insert_after, HWND owner_hint, UIN release_win_data( data ); if (needs_icon) fetch_icon_data( hwnd, 0, 0 ); if (needs_map) map_window( hwnd, new_style ); - return; + goto done; } else if ((swp_flags & SWP_STATECHANGED) && ((old_style ^ new_style) & WS_MINIMIZE)) { @@ -3019,6 +3017,8 @@ void X11DRV_WindowPosChanged( HWND hwnd, HWND insert_after, HWND owner_hint, UIN
XFlush( data->display ); /* make sure changes are done before we start painting again */ release_win_data( data ); +done: + sync_gl_drawable( hwnd, FALSE ); }
/* check if the window icon should be hidden (i.e. moved off-screen) */