diff -r 58908b180ebd src/video/x11/SDL_x11sym.h --- a/src/video/x11/SDL_x11sym.h Sat Jul 13 03:13:41 2013 -0700 +++ b/src/video/x11/SDL_x11sym.h Sat Jul 13 17:20:09 2013 +0400 @@ -126,6 +126,7 @@ SDL_X11_SYM(int,XUninstallColormap,(Display* a,Colormap b),(a,b),return) SDL_X11_SYM(int,XUnloadFont,(Display* a,Font b),(a,b),return) SDL_X11_SYM(int,XUnmapWindow,(Display* a,Window b),(a,b),return) +SDL_X11_SYM(int,XWithdrawWindow,(Display* a,Window b, int s),(a,b,s),return) SDL_X11_SYM(int,XWarpPointer,(Display* a,Window b,Window c,int d,int e,unsigned int f,unsigned int g,int h,int i),(a,b,c,d,e,f,g,h,i),return) SDL_X11_SYM(int,XWindowEvent,(Display* a,Window b,long c,XEvent* d),(a,b,c,d),return) SDL_X11_SYM(VisualID,XVisualIDFromVisual,(Visual* a),(a),return) diff -r 58908b180ebd src/video/x11/SDL_x11window.c --- a/src/video/x11/SDL_x11window.c Sat Jul 13 03:13:41 2013 -0700 +++ b/src/video/x11/SDL_x11window.c Sat Jul 13 17:20:09 2013 +0400 @@ -848,10 +848,11 @@ { SDL_WindowData *data = (SDL_WindowData *) window->driverdata; Display *display = data->videodata->display; + SDL_DisplayData *displaydata = (SDL_DisplayData *) SDL_GetDisplayForWindow(window)->driverdata; XEvent event; if (X11_IsWindowMapped(_this, window)) { - XUnmapWindow(display, data->xwindow); + XWithdrawWindow(display, data->xwindow, displaydata->screen); /* Blocking wait for "UnmapNotify" event */ XIfEvent(display, &event, &isUnmapNotify, (XPointer)&data->xwindow); XFlush(display);