diff options
author | lubomyr | 2016-09-20 19:58:50 +0300 |
---|---|---|
committer | lubomyr | 2016-09-21 14:09:00 +0300 |
commit | a7ec02d887db18be42370bed85e8641c2f8d432b (patch) | |
tree | 916b605c6681f9fc0a30a1ea04a7f7c8471caffb /backends | |
parent | 6ffc90412cc8ef9af667d467197e36a5998e9ab4 (diff) | |
download | scummvm-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.cpp | 18 | ||||
-rw-r--r-- | backends/events/androidsdl/androidsdl-events.h | 1 |
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 |