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/gui/platform/darwin/qapplekeymapper.mm | 6 +++++- src/gui/platform/darwin/qapplekeymapper_p.h | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) (limited to 'src/gui/platform/darwin') diff --git a/src/gui/platform/darwin/qapplekeymapper.mm b/src/gui/platform/darwin/qapplekeymapper.mm index 19e34b1698..738fab3863 100644 --- a/src/gui/platform/darwin/qapplekeymapper.mm +++ b/src/gui/platform/darwin/qapplekeymapper.mm @@ -74,7 +74,7 @@ static Qt::KeyboardModifiers swapModifiersIfNeeded(const Qt::KeyboardModifiers m } Qt::Key QAppleKeyMapper::fromNSString(Qt::KeyboardModifiers qtModifiers, NSString *characters, - NSString *charactersIgnoringModifiers) + NSString *charactersIgnoringModifiers, QString &text) { if ([characters isEqualToString:@"\t"]) { if (qtModifiers & Qt::ShiftModifier) @@ -93,6 +93,10 @@ Qt::Key QAppleKeyMapper::fromNSString(Qt::KeyboardModifiers qtModifiers, NSStrin } else if ([characters length] != 0) { ch = QChar([characters characterAtIndex:0]); } + if (!(qtModifiers & (Qt::ControlModifier | Qt::MetaModifier)) && + (ch.unicode() < 0xf700 || ch.unicode() > 0xf8ff)) { + text = QString::fromNSString(characters); + } if (!ch.isNull()) return Qt::Key(ch.toUpper().unicode()); } diff --git a/src/gui/platform/darwin/qapplekeymapper_p.h b/src/gui/platform/darwin/qapplekeymapper_p.h index dd15e37ae6..78e71ac37d 100644 --- a/src/gui/platform/darwin/qapplekeymapper_p.h +++ b/src/gui/platform/darwin/qapplekeymapper_p.h @@ -68,7 +68,7 @@ public: static Qt::KeyboardModifiers queryKeyboardModifiers(); QList possibleKeys(const QKeyEvent *event) const; static Qt::Key fromNSString(Qt::KeyboardModifiers qtMods, NSString *characters, - NSString *charactersIgnoringModifiers); + NSString *charactersIgnoringModifiers, QString &text); #ifdef Q_OS_MACOS static Qt::KeyboardModifiers fromCocoaModifiers(NSEventModifierFlags cocoaModifiers); static NSEventModifierFlags toCocoaModifiers(Qt::KeyboardModifiers); -- cgit v1.2.3