diff --git a/source/Core/Threads/OperatingModes/SettingsMenu.cpp b/source/Core/Threads/OperatingModes/SettingsMenu.cpp index 3f4e28bc9e..0f9bb69f6e 100644 --- a/source/Core/Threads/OperatingModes/SettingsMenu.cpp +++ b/source/Core/Threads/OperatingModes/SettingsMenu.cpp @@ -168,7 +168,15 @@ OperatingMode gui_SettingsMenu(const ButtonState buttons, guiContext *cxt) { (*autoRepeatTimer) = 0; // reset acceleration break; case BUTTON_BOTH: - return OperatingMode::HomeScreen; + if (*subEntry == 0) { + saveSettings(); + cxt->transitionMode = TransitionAnimation::Left; + return OperatingMode::HomeScreen; + } else { + cxt->transitionMode = TransitionAnimation::Left; + *subEntry = 0; + return OperatingMode::SettingsMenu; + } break; case BUTTON_F_LONG: