summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2020-01-09 20:30:39 +0100
committerLiang Qi <liang.qi@qt.io>2020-01-09 20:30:39 +0100
commita59c7684897bfbbb7ddcec2f05263fee92ab5056 (patch)
tree50793671569f87bdbfc0e9ff36adbf416971d6cf /src/plugins/platforms
parent5507d0f1b04ea6b1d91be9ade30bc31d1830c220 (diff)
parent1c75f59588694557caba69c2fc173dd8f1d7f514 (diff)
Merge remote-tracking branch 'origin/5.14' into 5.15
Conflicts: src/corelib/kernel/qobject.cpp Change-Id: I4780b25665672692b086ee92092e506c814642f2
Diffstat (limited to 'src/plugins/platforms')
-rw-r--r--src/plugins/platforms/ios/qiostextresponder.mm6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/plugins/platforms/ios/qiostextresponder.mm b/src/plugins/platforms/ios/qiostextresponder.mm
index 1bc9744528..a3350bda87 100644
--- a/src/plugins/platforms/ios/qiostextresponder.mm
+++ b/src/plugins/platforms/ios/qiostextresponder.mm
@@ -745,7 +745,11 @@
- (UITextPosition *)positionFromPosition:(UITextPosition *)position offset:(NSInteger)offset
{
int p = static_cast<QUITextPosition *>(position).index;
- return [QUITextPosition positionWithIndex:p + offset];
+ const int posWithIndex = p + offset;
+ const int textLength = [self currentImeState:Qt::ImSurroundingText].toString().length();
+ if (posWithIndex < 0 || posWithIndex > textLength)
+ return nil;
+ return [QUITextPosition positionWithIndex:posWithIndex];
}
- (UITextPosition *)positionFromPosition:(UITextPosition *)position inDirection:(UITextLayoutDirection)direction offset:(NSInteger)offset