From d8d7ba9251042fbef425509831fe5b642cf083f1 Mon Sep 17 00:00:00 2001 From: StapleButter Date: Fri, 31 May 2019 03:18:09 +0200 Subject: [PATCH] fix potential crash when switching video output methods --- src/libui_sdl/DlgVideoSettings.cpp | 4 +++- src/libui_sdl/main.cpp | 7 +++---- 2 files changed, 6 insertions(+), 5 deletions(-) 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)