From 8b6ad7ffbadf0bbb2322039cc3d19bab95c8e5e9 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Fri, 27 Sep 2013 23:47:57 -0700 Subject: [PATCH] Fixed bug 2101 - CWBackPixel causes weird window flickering on window resize aBothe I tried to experiment a bit with SDL2 and OpenGL today and noticed that something caused some weird flickering when resizing my nicely drawn SDL2/OpenGL window: Just after resizing, the background went black and I had to let my OpenGL code redraw the contents.. However, after some hours spent with googling I found out that in OpenGL examples where this CWBackPixel flag was not used when creating X windows, there was no flickering while resizing the window. See http://www.sbin.org/doc/Xlib/chapt_04.html @ "The Window Background" for more info. --- src/video/x11/SDL_x11window.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/video/x11/SDL_x11window.c b/src/video/x11/SDL_x11window.c index 0a8e3dfd5..07e863bc8 100644 --- a/src/video/x11/SDL_x11window.c +++ b/src/video/x11/SDL_x11window.c @@ -395,7 +395,7 @@ X11_CreateWindow(_THIS, SDL_Window * window) } xattr.override_redirect = False; - xattr.background_pixel = 0; + xattr.background_pixmap = None; xattr.border_pixel = 0; if (visual->class == DirectColor) { @@ -480,7 +480,7 @@ X11_CreateWindow(_THIS, SDL_Window * window) w = XCreateWindow(display, RootWindow(display, screen), window->x, window->y, window->w, window->h, 0, depth, InputOutput, visual, - (CWOverrideRedirect | CWBackPixel | CWBorderPixel | + (CWOverrideRedirect | CWBackPixmap | CWBorderPixel | CWColormap), &xattr); if (!w) { return SDL_SetError("Couldn't create window");