mirror of https://github.com/encounter/SDL.git
Fixed crash if the IC isn't set up for some reason (bad X11 locale?)
This commit is contained in:
parent
6107705a40
commit
3d217ed7b5
|
@ -346,6 +346,7 @@ X11_CreateWindow(_THIS, SDL_Window * window)
|
||||||
SDL_VideoData *data = (SDL_VideoData *) _this->driverdata;
|
SDL_VideoData *data = (SDL_VideoData *) _this->driverdata;
|
||||||
SDL_DisplayData *displaydata =
|
SDL_DisplayData *displaydata =
|
||||||
(SDL_DisplayData *) SDL_GetDisplayForWindow(window)->driverdata;
|
(SDL_DisplayData *) SDL_GetDisplayForWindow(window)->driverdata;
|
||||||
|
SDL_WindowData *windowdata;
|
||||||
Display *display = data->display;
|
Display *display = data->display;
|
||||||
int screen = displaydata->screen;
|
int screen = displaydata->screen;
|
||||||
Visual *visual;
|
Visual *visual;
|
||||||
|
@ -547,6 +548,7 @@ X11_CreateWindow(_THIS, SDL_Window * window)
|
||||||
XDestroyWindow(display, w);
|
XDestroyWindow(display, w);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
windowdata = (SDL_WindowData *) window->driverdata;
|
||||||
|
|
||||||
#if SDL_VIDEO_OPENGL_ES || SDL_VIDEO_OPENGL_ES2
|
#if SDL_VIDEO_OPENGL_ES || SDL_VIDEO_OPENGL_ES2
|
||||||
if ((window->flags & SDL_WINDOW_OPENGL) && (_this->gl_config.use_egl == 1)) {
|
if ((window->flags & SDL_WINDOW_OPENGL) && (_this->gl_config.use_egl == 1)) {
|
||||||
|
@ -556,9 +558,9 @@ X11_CreateWindow(_THIS, SDL_Window * window)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Create the GLES window surface */
|
/* Create the GLES window surface */
|
||||||
((SDL_WindowData *) window->driverdata)->egl_surface = SDL_EGL_CreateSurface(_this, (NativeWindowType) w);
|
windowdata->egl_surface = SDL_EGL_CreateSurface(_this, (NativeWindowType) w);
|
||||||
|
|
||||||
if (((SDL_WindowData *) window->driverdata)->egl_surface == EGL_NO_SURFACE) {
|
if (windowdata->egl_surface == EGL_NO_SURFACE) {
|
||||||
XDestroyWindow(display, w);
|
XDestroyWindow(display, w);
|
||||||
return SDL_SetError("Could not create GLES window surface");
|
return SDL_SetError("Could not create GLES window surface");
|
||||||
}
|
}
|
||||||
|
@ -567,9 +569,8 @@ X11_CreateWindow(_THIS, SDL_Window * window)
|
||||||
|
|
||||||
|
|
||||||
#ifdef X_HAVE_UTF8_STRING
|
#ifdef X_HAVE_UTF8_STRING
|
||||||
if (SDL_X11_HAVE_UTF8) {
|
if (SDL_X11_HAVE_UTF8 && windowdata->ic) {
|
||||||
pXGetICValues(((SDL_WindowData *) window->driverdata)->ic,
|
pXGetICValues(windowdata->ic, XNFilterEvents, &fevent, NULL);
|
||||||
XNFilterEvents, &fevent, NULL);
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue