aboutsummaryrefslogtreecommitdiff
path: root/gui/gui-manager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gui/gui-manager.cpp')
-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