[PATCH 4/4] winex11: destroy gl drawable of toplevel windows

Miklós Máté mtmkls at gmail.com
Mon Apr 3 16:24:23 CDT 2017


Fixes https://bugs.winehq.org/show_bug.cgi?id=40767

Signed-off-by: Miklós Máté <mtmkls at gmail.com>
---
 dlls/winex11.drv/opengl.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/dlls/winex11.drv/opengl.c b/dlls/winex11.drv/opengl.c
index 3df3584470..345fdc0e0f 100644
--- a/dlls/winex11.drv/opengl.c
+++ b/dlls/winex11.drv/opengl.c
@@ -1314,6 +1314,9 @@ static void free_gl_drawable( struct gl_drawable *gl )
 {
     switch (gl->type)
     {
+    case DC_GL_WINDOW:
+        pglXDestroyWindow( gdi_display, gl->drawable );
+        break;
     case DC_GL_CHILD_WIN:
         pglXDestroyWindow( gdi_display, gl->drawable );
         XDestroyWindow( gdi_display, gl->window );
@@ -1589,6 +1592,7 @@ void set_gl_drawable_parent( HWND hwnd, HWND parent )
     switch (gl->type)
     {
     case DC_GL_WINDOW:
+        pglXDestroyWindow( gdi_display, gl->drawable );
         break;
     case DC_GL_CHILD_WIN:
         if (parent != GetDesktopWindow()) goto done;
@@ -1604,6 +1608,7 @@ void set_gl_drawable_parent( HWND hwnd, HWND parent )
     default:
         goto done;
     }
+    XSync( gdi_display, False );
 
     data = get_win_data( hwnd );
     if (!create_gl_drawable( hwnd, gl, data ))
-- 
2.11.0




More information about the wine-patches mailing list