X11 Segmentation fault with multiple windows and renderers (see #5256)

This commit is contained in:
Sylvain 2022-02-11 11:08:08 +01:00
parent 4cb6181808
commit 85e6500065
No known key found for this signature in database
GPG key ID: 5F87E02E5BC0939E

View file

@ -1659,9 +1659,15 @@ void
X11_SetWindowMouseGrab(_THIS, SDL_Window * window, SDL_bool grabbed) X11_SetWindowMouseGrab(_THIS, SDL_Window * window, SDL_bool grabbed)
{ {
SDL_WindowData *data = (SDL_WindowData *) window->driverdata; SDL_WindowData *data = (SDL_WindowData *) window->driverdata;
Display *display = data->videodata->display; Display *display;
SDL_bool oldstyle_fullscreen; SDL_bool oldstyle_fullscreen;
if (data == NULL) {
return;
}
display = data->videodata->display;
/* ICCCM2.0-compliant window managers can handle fullscreen windows /* ICCCM2.0-compliant window managers can handle fullscreen windows
If we're using XVidMode to change resolution we need to confine If we're using XVidMode to change resolution we need to confine
the cursor so we don't pan around the virtual desktop. 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) X11_SetWindowKeyboardGrab(_THIS, SDL_Window * window, SDL_bool grabbed)
{ {
SDL_WindowData *data = (SDL_WindowData *) window->driverdata; 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 (grabbed) {
/* If the window is unmapped, XGrab calls return GrabNotViewable, /* If the window is unmapped, XGrab calls return GrabNotViewable,