X11 Segmentation fault with multiple windows and renderers (see #5256)
diff --git a/src/video/x11/SDL_x11window.c b/src/video/x11/SDL_x11window.c
index 709f813..a6bd91d 100644
--- a/src/video/x11/SDL_x11window.c
+++ b/src/video/x11/SDL_x11window.c
@@ -1659,9 +1659,15 @@ void
X11_SetWindowMouseGrab(_THIS, SDL_Window * window, SDL_bool grabbed)
{
SDL_WindowData *data = (SDL_WindowData *) window->driverdata;
- Display *display = data->videodata->display;
+ Display *display;
SDL_bool oldstyle_fullscreen;
+ if (data == NULL) {
+ return;
+ }
+
+ display = data->videodata->display;
+
/* ICCCM2.0-compliant window managers can handle fullscreen windows
If we're using XVidMode to change resolution we need to confine
the cursor so we don't pan around the virtual desktop.
@@ -1719,7 +1725,13 @@ void
X11_SetWindowKeyboardGrab(_THIS, SDL_Window * window, SDL_bool grabbed)
{
SDL_WindowData *data = (SDL_WindowData *) window->driverdata;
- Display *display = data->videodata->display;
+ Display *display;
+
+ if (data == NULL) {
+ return;
+ }
+
+ display = data->videodata->display;
if (grabbed) {
/* If the window is unmapped, XGrab calls return GrabNotViewable,