aboutsummaryrefslogtreecommitdiff
path: root/gui
diff options
context:
space:
mode:
authorTarek Soliman2011-10-22 14:42:43 -0500
committerTarek Soliman2011-10-27 10:46:23 -0500
commit56b5c0ea9fba89eeb1c2e1e70ded9049ba058865 (patch)
tree336e3f15a97fb3673302ba138e38f0b851e5a610 /gui
parenta5082ffa5d12483f2e65fe653509989b1314164c (diff)
downloadscummvm-rg350-56b5c0ea9fba89eeb1c2e1e70ded9049ba058865.tar.gz
scummvm-rg350-56b5c0ea9fba89eeb1c2e1e70ded9049ba058865.tar.bz2
scummvm-rg350-56b5c0ea9fba89eeb1c2e1e70ded9049ba058865.zip
KEYMAPPER: Make sure GuiManager only pops gui keymaps
Diffstat (limited to 'gui')
-rw-r--r--gui/gui-manager.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/gui/gui-manager.cpp b/gui/gui-manager.cpp
index 0910d06fb2..849044286d 100644
--- a/gui/gui-manager.cpp
+++ b/gui/gui-manager.cpp
@@ -133,7 +133,15 @@ void GuiManager::pushKeymap() {
}
void GuiManager::popKeymap() {
- _system->getEventManager()->getKeymapper()->popKeymap();
+ Common::Keymapper *keymapper = _system->getEventManager()->getKeymapper();
+ if (!keymapper->getActiveStack().empty()) {
+ Common::Keymapper::MapRecord topKeymap = keymapper->getActiveStack().top();
+ // TODO: Don't use the keymap name as a way to discriminate GUI maps
+ if(topKeymap.keymap->getName().equals(Common::kGuiKeymapName))
+ keymapper->popKeymap();
+ else
+ warning("An attempt to pop non-gui keymap %s was blocked", topKeymap.keymap->getName().c_str());
+ }
}
#endif