diff --git a/CHANGES b/CHANGES index 4d69716ee..905c4604a 100644 --- a/CHANGES +++ b/CHANGES @@ -28,6 +28,7 @@ Other fixes: - Qt: Fix stride changing when toggling SGB borders (fixes mgba.io/i/1898) - Qt: Fix aliasing on background logo (fixes mgba.io/i/1886) - mGUI: Fix closing down a game if an exit is signalled + - mGUI: Fix cycling through config setting states with accept button - mVL: Fix injecting accidentally draining non-injection buffer - VFS: Fix directory node listing on some filesystems Misc: diff --git a/src/feature/gui/gui-config.c b/src/feature/gui/gui-config.c index ee14a019c..23066a291 100644 --- a/src/feature/gui/gui-config.c +++ b/src/feature/gui/gui-config.c @@ -332,8 +332,14 @@ void mGUIShowConfig(struct mGUIRunner* runner, struct GUIMenuItem* extra, size_t } #endif if (item->validStates) { - ++item->state; - if (item->state >= item->nStates) { + if (item->state < item->nStates - 1) { + do { + ++item->state; + } while (!item->validStates[item->state] && item->state < item->nStates - 1); + if (!item->validStates[item->state]) { + item->state = 0; + } + } else { item->state = 0; } }