diff --git a/src/modules/userinterface/legacymenu/confscreens/controlconfig.cpp b/src/modules/userinterface/legacymenu/confscreens/controlconfig.cpp index 53cdb5c93..d40cf4114 100644 --- a/src/modules/userinterface/legacymenu/confscreens/controlconfig.cpp +++ b/src/modules/userinterface/legacymenu/confscreens/controlconfig.cpp @@ -610,15 +610,6 @@ ControlMenuInit(void *prevMenu, void *prefHdle, unsigned index, tGearChangeMode { int i; - /* Don't recreate screen if already done */ - if (ScrHandle) { - if (PrevScrHandle != prevMenu) - // Need to re-create screen as parent has changed - GfuiScreenRelease(ScrHandle); - else - return ScrHandle; - } - ReloadValues = 1; PrevScrHandle = prevMenu; PrefHdle = prefHdle; @@ -630,6 +621,15 @@ ControlMenuInit(void *prevMenu, void *prefHdle, unsigned index, tGearChangeMode /* Set specified gear changing mode for current player */ GearChangeMode = gearChangeMode; + /* Don't recreate screen if already done */ + if (ScrHandle) { + if (PrevScrHandle != prevMenu) + // Need to re-create screen as parent has changed + GfuiScreenRelease(ScrHandle); + else + return ScrHandle; + } + /* Initialize joysticks array */ for (int jsInd = 0; jsInd < GFCTRL_JOY_NUMBER; jsInd++) Joystick[jsInd] = 0;