From: Rémi Bernon rbernon@codeweavers.com
Fixes: 278ca7f68d727639b3389b78c363134fa2bd32a8 Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=57189 --- dlls/winex11.drv/opengl.c | 7 ++++++- dlls/winex11.drv/window.c | 10 ++++------ 2 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/dlls/winex11.drv/opengl.c b/dlls/winex11.drv/opengl.c index 786ec2a2444..ff20fc0fbd3 100644 --- a/dlls/winex11.drv/opengl.c +++ b/dlls/winex11.drv/opengl.c @@ -1311,7 +1311,12 @@ void sync_gl_drawable( HWND hwnd, BOOL known_child ) switch (old->type) { case DC_GL_WINDOW: - if (!known_child) break; /* Still a childless top-level window */ + if (!known_child) + { + /* Still a childless top-level window */ + update_gl_drawable_size( old ); + break; + } /* fall through */ case DC_GL_PIXMAP_WIN: if (!(new = create_gl_drawable( hwnd, old->format, known_child, old->mutable_pf ))) break; diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c index 16dad0747a2..24e926d229f 100644 --- a/dlls/winex11.drv/window.c +++ b/dlls/winex11.drv/window.c @@ -2603,15 +2603,13 @@ void X11DRV_WindowPosChanged( HWND hwnd, HWND insert_after, UINT swp_flags, cons
sync_client_position( data, &old_rects );
+ if (data->rects.client.right - data->rects.client.left != old_rects.client.right - old_rects.client.left || + data->rects.client.bottom - data->rects.client.top != old_rects.client.bottom - old_rects.client.top) + sync_gl_drawable( hwnd, FALSE ); + if (!data->whole_window) { - BOOL needs_resize = (!data->client_window && - (data->rects.client.right - data->rects.client.left != - old_rects.client.right - old_rects.client.left || - data->rects.client.bottom - data->rects.client.top != - old_rects.client.bottom - old_rects.client.top)); release_win_data( data ); - if (needs_resize) sync_gl_drawable( hwnd, FALSE ); return; }