summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/android/androidjniinput.cpp
diff options
context:
space:
mode:
authorPrzemysław Czerpak <druzus@poczta.onet.pl>2014-10-28 01:29:14 +0100
committerPrzemysław Czerpak <druzus@poczta.onet.pl>2014-12-08 13:23:56 +0100
commit1b548faa773a2346a63c018dcd6f6756742a2f65 (patch)
tree09e97df122a67e274f0e9c0843ccf3c98f275973 /src/plugins/platforms/android/androidjniinput.cpp
parent1d61e3267da7ff4a2c437ed7c6a591e13eb92076 (diff)
Added support for CTRL key modifier to Android builds.
Change-Id: Ib3eddb33348c54cec6cee62abdf69104059affb0 Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
Diffstat (limited to 'src/plugins/platforms/android/androidjniinput.cpp')
-rw-r--r--src/plugins/platforms/android/androidjniinput.cpp43
1 files changed, 21 insertions, 22 deletions
diff --git a/src/plugins/platforms/android/androidjniinput.cpp b/src/plugins/platforms/android/androidjniinput.cpp
index 595892c1d1..3a80f9437a 100644
--- a/src/plugins/platforms/android/androidjniinput.cpp
+++ b/src/plugins/platforms/android/androidjniinput.cpp
@@ -638,6 +638,25 @@ namespace QtAndroidInput
}
}
+ static Qt::KeyboardModifiers mapAndroidModifiers(jint modifiers)
+ {
+ Qt::KeyboardModifiers qmodifiers;
+
+ if (modifiers & 0x00000001) // META_SHIFT_ON
+ qmodifiers |= Qt::ShiftModifier;
+
+ if (modifiers & 0x00000002) // META_ALT_ON
+ qmodifiers |= Qt::AltModifier;
+
+ if (modifiers & 0x00000004) // META_SYM_ON
+ qmodifiers |= Qt::MetaModifier;
+
+ if (modifiers & 0x00001000) // META_CTRL_ON
+ qmodifiers |= Qt::ControlModifier;
+
+ return qmodifiers;
+ }
+
// maps 0 to the empty string, and anything else to a single-character string
static inline QString toString(jint unicode)
{
@@ -646,40 +665,20 @@ namespace QtAndroidInput
static void keyDown(JNIEnv */*env*/, jobject /*thiz*/, jint key, jint unicode, jint modifier)
{
- Qt::KeyboardModifiers modifiers;
- if (modifier & 1)
- modifiers |= Qt::ShiftModifier;
-
- if (modifier & 2)
- modifiers |= Qt::AltModifier;
-
- if (modifier & 4)
- modifiers |= Qt::MetaModifier;
-
QWindowSystemInterface::handleKeyEvent(0,
QEvent::KeyPress,
mapAndroidKey(key),
- modifiers,
+ mapAndroidModifiers(modifier),
toString(unicode),
false);
}
static void keyUp(JNIEnv */*env*/, jobject /*thiz*/, jint key, jint unicode, jint modifier)
{
- Qt::KeyboardModifiers modifiers;
- if (modifier & 1)
- modifiers |= Qt::ShiftModifier;
-
- if (modifier & 2)
- modifiers |= Qt::AltModifier;
-
- if (modifier & 4)
- modifiers |= Qt::MetaModifier;
-
QWindowSystemInterface::handleKeyEvent(0,
QEvent::KeyRelease,
mapAndroidKey(key),
- modifiers,
+ mapAndroidModifiers(modifier),
toString(unicode),
false);
}