summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/android/androidjniinput.cpp
diff options
context:
space:
mode:
authorPaul Olav Tvete <paul.tvete@digia.com>2014-03-12 15:34:49 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-03-14 22:39:48 +0100
commit80d4a19f514f66c4ef2c8b5aa40039fdb6b8dd53 (patch)
treea2bb40356c0fe3d45f6369c9cfe3788245a853a3 /src/plugins/platforms/android/androidjniinput.cpp
parent1567699c0e5681b577ab203274181105d226116c (diff)
Android: Use proper empty strings in key events
A key event with no unicode would get a text of "\0" instead of the empty string. This would lead to various widgets interpreting the Key_Back event as text input, meaning that it would be grabbed by the widget instead of being propagated. Task-number: QTBUG-35784 Change-Id: Ibdb0e491572e41dd1aaf3b03ae1a780731f0559a Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Diffstat (limited to 'src/plugins/platforms/android/androidjniinput.cpp')
-rw-r--r--src/plugins/platforms/android/androidjniinput.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/plugins/platforms/android/androidjniinput.cpp b/src/plugins/platforms/android/androidjniinput.cpp
index 55d44b7377..9d605c7a17 100644
--- a/src/plugins/platforms/android/androidjniinput.cpp
+++ b/src/plugins/platforms/android/androidjniinput.cpp
@@ -517,6 +517,12 @@ namespace QtAndroidInput
}
}
+ // maps 0 to the empty string, and anything else to a single-character string
+ static inline QString toString(jint unicode)
+ {
+ return unicode ? QString(QChar(unicode)) : QString();
+ }
+
static void keyDown(JNIEnv */*env*/, jobject /*thiz*/, jint key, jint unicode, jint modifier)
{
Qt::KeyboardModifiers modifiers;
@@ -533,7 +539,7 @@ namespace QtAndroidInput
QEvent::KeyPress,
mapAndroidKey(key),
modifiers,
- QChar(unicode),
+ toString(unicode),
false);
}
@@ -553,7 +559,7 @@ namespace QtAndroidInput
QEvent::KeyRelease,
mapAndroidKey(key),
modifiers,
- QChar(unicode),
+ toString(unicode),
false);
}