winex11: Don't leak client window and colormap when pixel format is changed.

This commit is contained in:
Ken Thomases 2014-03-10 18:23:13 -05:00 committed by Alexandre Julliard
parent e9eb86edfb
commit eef81f5ecc
1 changed files with 7 additions and 0 deletions

View File

@ -1378,6 +1378,13 @@ Window create_client_window( struct x11drv_win_data *data, const XVisualInfo *vi
int cx = min( max( 1, data->client_rect.right - data->client_rect.left ), 65535 ); int cx = min( max( 1, data->client_rect.right - data->client_rect.left ), 65535 );
int cy = min( max( 1, data->client_rect.bottom - data->client_rect.top ), 65535 ); int cy = min( max( 1, data->client_rect.bottom - data->client_rect.top ), 65535 );
if (data->client_window)
{
XDeleteContext( data->display, data->client_window, winContext );
XDestroyWindow( data->display, data->client_window );
}
if (data->colormap) XFreeColormap( data->display, data->colormap );
data->colormap = XCreateColormap( data->display, root_window, visual->visual, data->colormap = XCreateColormap( data->display, root_window, visual->visual,
(visual->class == PseudoColor || (visual->class == PseudoColor ||
visual->class == GrayScale || visual->class == GrayScale ||