diff --git a/src/libui_sdl/DlgVideoSettings.cpp b/src/libui_sdl/DlgVideoSettings.cpp index 5c5d5f9e..7d876e24 100644 --- a/src/libui_sdl/DlgVideoSettings.cpp +++ b/src/libui_sdl/DlgVideoSettings.cpp @@ -134,13 +134,15 @@ void OnRendererChanged(uiRadioButtons* rb, void* blarg) ApplyNewSettings(2); else ApplyNewSettings(3); + + uiControlSetFocus(uiControl(win)); } void OnGLDisplayChanged(uiCheckbox* cb, void* blarg) { Config::ScreenUseGL = uiCheckboxChecked(cb); ApplyNewSettings(2); - uiControlSetFocus(uiControl(cb)); + uiControlSetFocus(uiControl(win)); } void OnThreaded3DChanged(uiCheckbox* cb, void* blarg) diff --git a/src/libui_sdl/main.cpp b/src/libui_sdl/main.cpp index 986a8098..74d3fc90 100644 --- a/src/libui_sdl/main.cpp +++ b/src/libui_sdl/main.cpp @@ -2043,15 +2043,14 @@ void ApplyNewSettings(int type) bool usegl = Config::ScreenUseGL || (Config::_3DRenderer != 0); if (usegl != Screen_UseGL) { - Screen_UseGL = usegl; - if (RunningSomething) { - if (usegl) uiGLMakeContextCurrent(GLContext); + if (Screen_UseGL) uiGLMakeContextCurrent(GLContext); GPU3D::DeInitRenderer(); - if (usegl) uiGLMakeContextCurrent(NULL); + if (Screen_UseGL) uiGLMakeContextCurrent(NULL); } + Screen_UseGL = usegl; RecreateMainWindow(usegl); if (RunningSomething)