From: Rémi Bernon rbernon@codeweavers.com
--- dlls/winex11.drv/window.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c index ab17cb40a1c..c0ffc4c2c94 100644 --- a/dlls/winex11.drv/window.c +++ b/dlls/winex11.drv/window.c @@ -1841,6 +1841,8 @@ void X11DRV_DestroyWindow( HWND hwnd ) struct x11drv_win_data *data;
if (!(data = get_win_data( hwnd ))) return; + XDeleteContext( gdi_display, (XID)hwnd, win_data_context ); + release_win_data( data );
destroy_whole_window( data, FALSE ); if (thread_data->last_focus == hwnd) thread_data->last_focus = 0; @@ -1848,9 +1850,8 @@ void X11DRV_DestroyWindow( HWND hwnd ) if (data->icon_pixmap) XFreePixmap( gdi_display, data->icon_pixmap ); if (data->icon_mask) XFreePixmap( gdi_display, data->icon_mask ); free( data->icon_bits ); - XDeleteContext( gdi_display, (XID)hwnd, win_data_context ); - release_win_data( data ); free( data ); + destroy_gl_drawable( hwnd ); }