diff options
author | Tarek Soliman | 2012-02-18 17:42:39 -0600 |
---|---|---|
committer | Tarek Soliman | 2012-02-20 06:49:22 -0600 |
commit | cfe91c8d444b8535c30d6766821ee4eeb4108b07 (patch) | |
tree | 887b7342a915dea6ec69d06f826d16245bbeb9c4 | |
parent | 3c918bb378b2204e38cfc16e10a3c2c0e130d9f4 (diff) | |
download | scummvm-rg350-cfe91c8d444b8535c30d6766821ee4eeb4108b07.tar.gz scummvm-rg350-cfe91c8d444b8535c30d6766821ee4eeb4108b07.tar.bz2 scummvm-rg350-cfe91c8d444b8535c30d6766821ee4eeb4108b07.zip |
KEYMAPPER: Move CTRL-F5 handling to DefaultEventMapper
-rw-r--r-- | backends/events/default/default-events.cpp | 30 | ||||
-rw-r--r-- | common/EventMapper.cpp | 11 |
2 files changed, 10 insertions, 31 deletions
diff --git a/backends/events/default/default-events.cpp b/backends/events/default/default-events.cpp index 074c42ff7f..3930038870 100644 --- a/backends/events/default/default-events.cpp +++ b/backends/events/default/default-events.cpp @@ -104,35 +104,7 @@ bool DefaultEventManager::pollEvent(Common::Event &event) { // Global Main Menu if (event.kbd.hasFlags(Common::KBD_CTRL) && event.kbd.keycode == Common::KEYCODE_F5) { - if (g_engine && !g_engine->isPaused()) { - Common::Event menuEvent; - menuEvent.type = Common::EVENT_MAINMENU; - - // FIXME: GSoC RTL branch passes the F6 key event to the - // engine, and also enqueues a EVENT_MAINMENU. For now, - // we just drop the key event and return an EVENT_MAINMENU - // instead. This way, we don't have to add special cases - // to engines (like it was the case for LURE in the RTL branch). - // - // However, this has other consequences, possibly negative ones. - // Like, what happens with key repeat for the trigger key? - - //pushEvent(menuEvent); - event = menuEvent; - - // FIXME: Since now we do not push another MAINMENU event onto - // our event stack, the GMM would never open, so we have to do - // that here. Of course when the engine would handle MAINMENU - // as an event now and open up the GMM itself it would open the - // menu twice. - if (g_engine && !g_engine->isPaused()) - g_engine->openMainMenuDialog(); - - if (_shouldQuit) - event.type = Common::EVENT_QUIT; - else if (_shouldRTL) - event.type = Common::EVENT_RTL; - } + //do nothing - EventMapper handles this case for us } #ifdef ENABLE_VKEYBD else if (event.kbd.keycode == Common::KEYCODE_F7 && event.kbd.hasFlags(0)) { diff --git a/common/EventMapper.cpp b/common/EventMapper.cpp index be55c6b9a5..6af27b8371 100644 --- a/common/EventMapper.cpp +++ b/common/EventMapper.cpp @@ -26,8 +26,15 @@ namespace Common { List<Event> DefaultEventMapper::mapEvent(const Event &ev, EventSource *source) { List<Event> events; - // just pass it through - events.push_back(ev); + Event mappedEvent; + if (ev.type == EVENT_KEYDOWN && ev.kbd.hasFlags(KBD_CTRL) && ev.kbd.keycode == KEYCODE_F5) { + mappedEvent.type = EVENT_MAINMENU; + } + else { + // just pass it through + mappedEvent = ev; + } + events.push_back(mappedEvent); return events; } |