From 5540c9c10754963375cd34f740e64b068c440a3e Mon Sep 17 00:00:00 2001 From: Andy Shaw Date: Fri, 5 Feb 2021 11:59:02 +0100 Subject: iOS: Pass the text to handleExtendedKeyEvent when known MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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ø --- src/plugins/platforms/ios/quiview.mm | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src/plugins/platforms/ios/quiview.mm') 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; -- cgit v1.2.3