Fixed XBadWindow error when iconified under Unity3D
Apparently the root window changes in this case. We want to send to the root window that is being listened to by the window manager, so this should be okay.
--- a/src/video/x11/SDL_x11events.c Tue Nov 06 10:20:14 2012 -0800
+++ b/src/video/x11/SDL_x11events.c Tue Nov 06 10:34:47 2012 -0800
@@ -389,17 +389,11 @@
if ((xevent.xclient.message_type == videodata->WM_PROTOCOLS) &&
(xevent.xclient.format == 32) &&
(xevent.xclient.data.l[0] == videodata->_NET_WM_PING)) {
-
- SDL_DisplayData *dpydata;
- Window root;
+ Window root = DefaultRootWindow(display);
#ifdef DEBUG_XEVENTS
printf("window %p: _NET_WM_PING\n", data);
#endif
-
- dpydata = (SDL_DisplayData *)
- SDL_GetDisplayForWindow(data->window);
- root = RootWindow(display, dpydata->screen);
xevent.xclient.window = root;
XSendEvent(display, root, False, SubstructureRedirectMask | SubstructureNotifyMask, &xevent);
break;
@@ -412,7 +406,6 @@
#ifdef DEBUG_XEVENTS
printf("window %p: WM_DELETE_WINDOW\n", data);
#endif
-
SDL_SendWindowEvent(data->window, SDL_WINDOWEVENT_CLOSE, 0, 0);
break;
}