aboutsummaryrefslogtreecommitdiff
path: root/backends/events/maemosdl/maemosdl-events.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'backends/events/maemosdl/maemosdl-events.cpp')
-rw-r--r--backends/events/maemosdl/maemosdl-events.cpp42
1 files changed, 35 insertions, 7 deletions
diff --git a/backends/events/maemosdl/maemosdl-events.cpp b/backends/events/maemosdl/maemosdl-events.cpp
index 95dc64f6f9..32d5cfb5ac 100644
--- a/backends/events/maemosdl/maemosdl-events.cpp
+++ b/backends/events/maemosdl/maemosdl-events.cpp
@@ -35,6 +35,9 @@ MaemoSdlEventSource::MaemoSdlEventSource() : SdlEventSource(), _clickEnabled(tru
bool MaemoSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
+ Model model = Model(((OSystem_SDL_Maemo *)g_system)->getModel());
+ debug(10, "Model: %s %u %s %s", model.hwId, model.modelType, model.hwAlias, model.hwKeyboard ? "true" : "false");
+
// List of special N810 keys:
// SDLK_F4 -> menu
// SDLK_F5 -> home
@@ -46,12 +49,23 @@ bool MaemoSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
case SDL_KEYDOWN:{
if (ev.key.keysym.sym == SDLK_F4) {
event.type = Common::EVENT_MAINMENU;
+ debug(9, "remapping to main menu");
return true;
} else if (ev.key.keysym.sym == SDLK_F6) {
- // handled in keyup
+ if (!model.hwKeyboard) {
+ event.type = Common::EVENT_KEYDOWN;
+ event.kbd.keycode = Common::KEYCODE_F7;
+ event.kbd.ascii = Common::ASCII_F7;
+ event.kbd.flags = 0;
+ debug(9, "remapping to F7 down (virtual keyboard)");
+ return true;
+ } else {
+ // handled in keyup
+ }
} else if (ev.key.keysym.sym == SDLK_F7) {
event.type = Common::EVENT_RBUTTONDOWN;
processMouseEvent(event, _km.x, _km.y);
+ debug(9, "remapping to right click down");
return true;
} else if (ev.key.keysym.sym == SDLK_F8) {
if (ev.key.keysym.mod & KMOD_CTRL) {
@@ -59,6 +73,7 @@ bool MaemoSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
event.kbd.keycode = Common::KEYCODE_F7;
event.kbd.ascii = Common::ASCII_F7;
event.kbd.flags = 0;
+ debug(9, "remapping to F7 down (virtual keyboard)");
return true;
} else {
// handled in keyup
@@ -72,14 +87,25 @@ bool MaemoSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
event.type = Common::EVENT_MAINMENU;
return true;
} else if (ev.key.keysym.sym == SDLK_F6) {
- bool currentState = ((OSystem_SDL *)g_system)->getGraphicsManager()->getFeatureState(OSystem::kFeatureFullscreenMode);
- g_system->beginGFXTransaction();
- ((OSystem_SDL *)g_system)->getGraphicsManager()->setFeatureState(OSystem::kFeatureFullscreenMode, !currentState);
- g_system->endGFXTransaction();
- return true;
+ if (!model.hwKeyboard) {
+ event.type = Common::EVENT_KEYUP;
+ event.kbd.keycode = Common::KEYCODE_F7;
+ event.kbd.ascii = Common::ASCII_F7;
+ event.kbd.flags = 0;
+ debug(9, "remapping to F7 down (virtual keyboard)");
+ return true;
+ } else {
+ bool currentState = ((OSystem_SDL *)g_system)->getGraphicsManager()->getFeatureState(OSystem::kFeatureFullscreenMode);
+ g_system->beginGFXTransaction();
+ ((OSystem_SDL *)g_system)->getGraphicsManager()->setFeatureState(OSystem::kFeatureFullscreenMode, !currentState);
+ g_system->endGFXTransaction();
+ debug(9, "remapping to full screen toggle");
+ return true;
+ }
} else if (ev.key.keysym.sym == SDLK_F7) {
event.type = Common::EVENT_RBUTTONUP;
processMouseEvent(event, _km.x, _km.y);
+ debug(9, "remapping to right click up");
return true;
} else if (ev.key.keysym.sym == SDLK_F8) {
if (ev.key.keysym.mod & KMOD_CTRL) {
@@ -87,11 +113,13 @@ bool MaemoSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
event.kbd.keycode = Common::KEYCODE_F7;
event.kbd.ascii = Common::ASCII_F7;
event.kbd.flags = 0;
+ debug(9, "remapping to F7 up (virtual keyboard)");
return true;
} else {
_clickEnabled = !_clickEnabled;
((SurfaceSdlGraphicsManager*) _graphicsManager)->displayMessageOnOSD(
- _clickEnabled ? _("Clicking Enabled") : _("Clicking Disabled"));
+ _clickEnabled ? _("Clicking Enabled") : _("Clicking Disabled"));
+ debug(9, "remapping to click toggle");
return true;
}
}