aboutsummaryrefslogtreecommitdiff
path: root/backends
diff options
context:
space:
mode:
authorEugene Sandulenko2016-09-23 17:07:54 +0200
committerGitHub2016-09-23 17:07:54 +0200
commitc73d66adb5d2ad963b745b1991772bf1d30b9ec7 (patch)
tree727f74ef310595657a5abcbaf1f808d1cd996e74 /backends
parentb0e433cec24f2bc89bd9b1f24f75510fa9d7e273 (diff)
parenta7ec02d887db18be42370bed85e8641c2f8d432b (diff)
downloadscummvm-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
Diffstat (limited to 'backends')
-rw-r--r--backends/events/androidsdl/androidsdl-events.cpp18
-rw-r--r--backends/events/androidsdl/androidsdl-events.h1
-rw-r--r--backends/events/sdl/sdl-events.h2
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