aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Horn2009-01-21 02:07:23 +0000
committerMax Horn2009-01-21 02:07:23 +0000
commit99c6943e3d1ff16652e63fe999730ea0dbda2e8f (patch)
tree2c12a656157d0b5c29cd4987f6267221a3b867d9
parent250acd4c8d345301c1b7e831c3c0f485c77d8ac7 (diff)
downloadscummvm-rg350-99c6943e3d1ff16652e63fe999730ea0dbda2e8f.tar.gz
scummvm-rg350-99c6943e3d1ff16652e63fe999730ea0dbda2e8f.tar.bz2
scummvm-rg350-99c6943e3d1ff16652e63fe999730ea0dbda2e8f.zip
Fix what I believe to be an error in Keymapper::cleanupGameKeymaps
svn-id: r35972
-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;