aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backends/keymapper/keymapper.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/backends/keymapper/keymapper.cpp b/backends/keymapper/keymapper.cpp
index 298ec721cd..1ac0af6025 100644
--- a/backends/keymapper/keymapper.cpp
+++ b/backends/keymapper/keymapper.cpp
@@ -96,10 +96,14 @@ void Keymapper::initKeymap(Domain &domain, Keymap *map) {
}
void Keymapper::cleanupGameKeymaps() {
+ // Flush all game specific keymaps
_gameDomain.deleteAllKeyMaps();
+
+ // Now restore the stack of active maps. Re-add all global keymaps, drop
+ // the game specific (=deleted) ones.
Stack<MapRecord> newStack;
for (int i = 0; i < _activeMaps.size(); i++) {
- if (!_activeMaps[i].global)
+ if (_activeMaps[i].global)
newStack.push(_activeMaps[i]);
}
_activeMaps = newStack;