diff options
author | Eugene Sandulenko | 2016-09-23 17:07:54 +0200 |
---|---|---|
committer | GitHub | 2016-09-23 17:07:54 +0200 |
commit | c73d66adb5d2ad963b745b1991772bf1d30b9ec7 (patch) | |
tree | 727f74ef310595657a5abcbaf1f808d1cd996e74 | |
parent | b0e433cec24f2bc89bd9b1f24f75510fa9d7e273 (diff) | |
parent | a7ec02d887db18be42370bed85e8641c2f8d432b (diff) | |
download | scummvm-rg350-c73d66adb5d2ad963b745b1991772bf1d30b9ec7.tar.gz scummvm-rg350-c73d66adb5d2ad963b745b1991772bf1d30b9ec7.tar.bz2 scummvm-rg350-c73d66adb5d2ad963b745b1991772bf1d30b9ec7.zip |
Merge pull request #834 from lubomyr/master
ANDROIDSDL: fixed switching to capital letter
-rw-r--r-- | backends/events/androidsdl/androidsdl-events.cpp | 18 | ||||
-rw-r--r-- | backends/events/androidsdl/androidsdl-events.h | 1 | ||||
-rw-r--r-- | backends/events/sdl/sdl-events.h | 2 |
3 files changed, 20 insertions, 1 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 diff --git a/backends/events/sdl/sdl-events.h b/backends/events/sdl/sdl-events.h index 7e590aed3c..4526065d9b 100644 --- a/backends/events/sdl/sdl-events.h +++ b/backends/events/sdl/sdl-events.h @@ -125,7 +125,7 @@ protected: /** * Maps the ASCII value of key */ - int mapKey(SDLKey key, SDLMod mod, Uint16 unicode); + virtual int mapKey(SDLKey key, SDLMod mod, Uint16 unicode); /** * Configures the key modifiers flags status |