summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/ios
diff options
context:
space:
mode:
authorAndy Shaw <andy.shaw@qt.io>2021-02-05 11:59:02 +0100
committerAndy Shaw <andy.shaw@qt.io>2021-02-23 09:36:40 +0100
commit5540c9c10754963375cd34f740e64b068c440a3e (patch)
tree8910c989858df81689a3526f6abcb11f16ddb92d /src/plugins/platforms/ios
parent9a5a2d61c077ddc8a0fb4e2cce7a36a5dbb081d5 (diff)
iOS: Pass the text to handleExtendedKeyEvent when known
This will ensure that the QKeyEvent also has this information passed on as appropriate. Pick-to: 6.1 Change-Id: I52436404115b453664b9b3414f8ec4e715dd6a28 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Diffstat (limited to 'src/plugins/platforms/ios')
-rw-r--r--src/plugins/platforms/ios/quiview.mm11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/plugins/platforms/ios/quiview.mm b/src/plugins/platforms/ios/quiview.mm
index d1cd3f3ca0..c7f94cc707 100644
--- a/src/plugins/platforms/ios/quiview.mm
+++ b/src/plugins/platforms/ios/quiview.mm
@@ -574,7 +574,7 @@ Q_LOGGING_CATEGORY(lcQpaTablet, "qt.qpa.input.tablet")
QWindowSystemInterface::handleTouchCancelEvent(self.platformWindow->window(), ulong(timestamp * 1000), iosIntegration->touchDevice());
}
-- (int)mapPressTypeToKey:(UIPress*)press withModifiers:(Qt::KeyboardModifiers)qtModifiers
+- (int)mapPressTypeToKey:(UIPress*)press withModifiers:(Qt::KeyboardModifiers)qtModifiers text:(QString &)text
{
switch (press.type) {
case UIPressTypeUpArrow: return Qt::Key_Up;
@@ -592,7 +592,7 @@ Q_LOGGING_CATEGORY(lcQpaTablet, "qt.qpa.input.tablet")
if (key != Qt::Key_unknown)
return key;
return QAppleKeyMapper::fromNSString(qtModifiers, press.key.characters,
- charactersIgnoringModifiers);
+ charactersIgnoringModifiers, text);
}
#endif
return Qt::Key_unknown;
@@ -611,11 +611,14 @@ Q_LOGGING_CATEGORY(lcQpaTablet, "qt.qpa.input.tablet")
if (@available(ios 13.4, *))
qtModifiers = QAppleKeyMapper::fromUIKitModifiers(press.key.modifierFlags);
#endif
- int key = [self mapPressTypeToKey:press withModifiers:qtModifiers];
+ QString text;
+ int key = [self mapPressTypeToKey:press withModifiers:qtModifiers text:text];
if (key == Qt::Key_unknown)
continue;
- if (QWindowSystemInterface::handleKeyEvent(self.platformWindow->window(), type, key, qtModifiers))
+ if (QWindowSystemInterface::handleKeyEvent(self.platformWindow->window(), type, key,
+ qtModifiers, text)) {
handled = true;
+ }
}
return handled;