diff options
-rw-r--r-- | gui/dialog.cpp | 8 | ||||
-rw-r--r-- | gui/gui-manager.cpp | 13 |
2 files changed, 13 insertions, 8 deletions
diff --git a/gui/dialog.cpp b/gui/dialog.cpp index 9f18baec9e..0522b40b46 100644 --- a/gui/dialog.cpp +++ b/gui/dialog.cpp @@ -86,10 +86,6 @@ void Dialog::open() { } setFocusWidget(w); -#ifdef ENABLE_KEYMAPPER - g_gui.initKeymap(); - g_gui.pushKeymap(); -#endif } void Dialog::close() { @@ -101,10 +97,6 @@ void Dialog::close() { } releaseFocus(); g_gui.closeTopDialog(); -#ifdef ENABLE_KEYMAPPER - g_gui.popKeymap(); -#endif - } void Dialog::reflowLayout() { diff --git a/gui/gui-manager.cpp b/gui/gui-manager.cpp index 849044286d..98840e6daf 100644 --- a/gui/gui-manager.cpp +++ b/gui/gui-manager.cpp @@ -286,6 +286,15 @@ void GuiManager::runLoop() { uint32 lastRedraw = 0; const uint32 waitTime = 1000 / 45; +#ifdef ENABLE_KEYMAPPER + // Due to circular reference with event manager and GUI + // we cannot init keymap on the GUI creation. Thus, let's + // try to do it on every launch, checking whether the + // map is already existing + initKeymap(); + pushKeymap(); +#endif + bool tooltipCheck = false; while (!_dialogStack.empty() && activeDialog == getTopDialog()) { @@ -397,6 +406,10 @@ void GuiManager::runLoop() { _system->delayMillis(10); } +#ifdef ENABLE_KEYMAPPER + popKeymap(); +#endif + if (didSaveState) { _theme->disable(); restoreState(); |