aboutsummaryrefslogtreecommitdiff
path: root/backends
diff options
context:
space:
mode:
authorlubomyr2016-09-20 19:58:50 +0300
committerlubomyr2016-09-21 14:09:00 +0300
commita7ec02d887db18be42370bed85e8641c2f8d432b (patch)
tree916b605c6681f9fc0a30a1ea04a7f7c8471caffb /backends
parent6ffc90412cc8ef9af667d467197e36a5998e9ab4 (diff)
downloadscummvm-rg350-a7ec02d887db18be42370bed85e8641c2f8d432b.tar.gz
scummvm-rg350-a7ec02d887db18be42370bed85e8641c2f8d432b.tar.bz2
scummvm-rg350-a7ec02d887db18be42370bed85e8641c2f8d432b.zip
ANDROIDSDL: fixed switching to capital letter
Diffstat (limited to 'backends')
-rw-r--r--backends/events/androidsdl/androidsdl-events.cpp18
-rw-r--r--backends/events/androidsdl/androidsdl-events.h1
2 files changed, 19 insertions, 0 deletions
diff --git a/backends/events/androidsdl/androidsdl-events.cpp b/backends/events/androidsdl/androidsdl-events.cpp
index 7ea8ff1dc1..18e696a897 100644
--- a/backends/events/androidsdl/androidsdl-events.cpp
+++ b/backends/events/androidsdl/androidsdl-events.cpp
@@ -82,4 +82,22 @@ bool AndroidSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
return false;
}
+int AndroidSdlEventSource::mapKey(SDLKey sdlKey, SDLMod mod, Uint16 unicode) {
+ Common::KeyCode key = SDLToOSystemKeycode(sdlKey);
+
+ if (key >= Common::KEYCODE_F1 && key <= Common::KEYCODE_F9) {
+ return key - Common::KEYCODE_F1 + Common::ASCII_F1;
+ } else if (key >= Common::KEYCODE_KP0 && key <= Common::KEYCODE_KP9) {
+ return key - Common::KEYCODE_KP0 + '0';
+ } else if (key >= Common::KEYCODE_UP && key <= Common::KEYCODE_PAGEDOWN) {
+ return key;
+ } else if (key >= 'a' && key <= 'z' && (mod & KMOD_SHIFT)) {
+ return key & ~0x20;
+ } else if (key >= Common::KEYCODE_NUMLOCK && key <= Common::KEYCODE_EURO) {
+ return 0;
+ } else {
+ return key;
+ }
+}
+
#endif
diff --git a/backends/events/androidsdl/androidsdl-events.h b/backends/events/androidsdl/androidsdl-events.h
index bca712e579..723a23b351 100644
--- a/backends/events/androidsdl/androidsdl-events.h
+++ b/backends/events/androidsdl/androidsdl-events.h
@@ -32,6 +32,7 @@ class AndroidSdlEventSource : public SdlEventSource {
protected:
virtual bool handleMouseButtonDown(SDL_Event &ev, Common::Event &event);
virtual bool remapKey(SDL_Event &ev, Common::Event &event);
+ virtual int mapKey(SDLKey key, SDLMod mod, Uint16 unicode);
};
#endif