diff --git a/CHANGES b/CHANGES index 9eb3a1c92..ec6f0b803 100644 --- a/CHANGES +++ b/CHANGES @@ -35,6 +35,7 @@ Other fixes: - Qt: Fix static compilation in MinGW (fixes mgba.io/i/1769) - Qt: Fix a race condition in the frame inspector - Qt: Add dummy English translation file (fixes mgba.io/i/1469) + - mGUI: Fix closing down a game if an exit is signalled - SM83: Simplify register pair access on big endian - VFS: Fix directory node listing on some filesystems Misc: diff --git a/src/feature/gui/gui-runner.c b/src/feature/gui/gui-runner.c index b8c2d9a5c..014552de1 100644 --- a/src/feature/gui/gui-runner.c +++ b/src/feature/gui/gui-runner.c @@ -541,6 +541,9 @@ void mGUIRun(struct mGUIRunner* runner, const char* path) { ++frame; } } + if (!running) { + break; + } if (runner->paused) { runner->paused(runner); @@ -651,7 +654,7 @@ void mGUIRunloop(struct mGUIRunner* runner) { mInputMapLoad(&runner->params.keyMap, runner->keySources[i].id, mCoreConfigGetInput(&runner->config)); } } - while (true) { + while (runner->running(runner)) { char path[PATH_MAX]; const char* preselect = mCoreConfigGetValue(&runner->config, "lastGame"); if (preselect) {