aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTarek Soliman2012-02-18 17:42:39 -0600
committerTarek Soliman2012-02-20 06:49:22 -0600
commitcfe91c8d444b8535c30d6766821ee4eeb4108b07 (patch)
tree887b7342a915dea6ec69d06f826d16245bbeb9c4
parent3c918bb378b2204e38cfc16e10a3c2c0e130d9f4 (diff)
downloadscummvm-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.cpp30
-rw-r--r--common/EventMapper.cpp11
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;
}