diff --git a/gfx/context/glx_ctx.c b/gfx/context/glx_ctx.c index 88d2ea3e4d..6032d79566 100644 --- a/gfx/context/glx_ctx.c +++ b/gfx/context/glx_ctx.c @@ -254,6 +254,7 @@ static bool gfx_ctx_set_video_mode( bool windowed_full = g_settings.video.windowed_fullscreen; bool true_full = false; + int (*old_handler)(Display*, XErrorEvent*) = NULL; XSetWindowAttributes swa = {0}; @@ -384,7 +385,7 @@ static bool gfx_ctx_set_video_mode( gfx_ctx_swap_interval(g_interval); // This can blow up on some drivers. It's not fatal, so override errors for this call. - int (*old_handler)(Display*, XErrorEvent*) = XSetErrorHandler(nul_handler); + old_handler = XSetErrorHandler(nul_handler); XSetInputFocus(g_dpy, g_win, RevertToNone, CurrentTime); XSync(g_dpy, False); XSetErrorHandler(old_handler); diff --git a/gfx/context/xegl_ctx.c b/gfx/context/xegl_ctx.c index 07184dde0e..bea4ce2fa2 100644 --- a/gfx/context/xegl_ctx.c +++ b/gfx/context/xegl_ctx.c @@ -292,6 +292,8 @@ static bool gfx_ctx_set_video_mode( int x_off = 0; int y_off = 0; + int (*old_handler)(Display*, XErrorEvent*) = NULL; + EGLint vid; if (!eglGetConfigAttrib(g_egl_dpy, g_config, EGL_NATIVE_VISUAL_ID, &vid)) goto error; @@ -408,7 +410,7 @@ static bool gfx_ctx_set_video_mode( gfx_ctx_swap_interval(g_interval); // This can blow up on some drivers. It's not fatal, so override errors for this call. - int (*old_handler)(Display*, XErrorEvent*) = XSetErrorHandler(nul_handler); + old_handler = XSetErrorHandler(nul_handler); XSetInputFocus(g_dpy, g_win, RevertToNone, CurrentTime); XSync(g_dpy, False); XSetErrorHandler(old_handler);