From 85e6500065bbe37e9131c0ff9cd7e5af6d256730 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Fri, 11 Feb 2022 11:08:08 +0100 Subject: [PATCH] X11 Segmentation fault with multiple windows and renderers (see #5256) --- src/video/x11/SDL_x11window.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/video/x11/SDL_x11window.c b/src/video/x11/SDL_x11window.c index 709f813ee..a6bd91d72 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,