Avoiding crash when insert preEditString
authorYuchen Deng <loaden@gmail.com>
Sat, 31 Dec 2011 11:26:45 +0000 (19:26 +0800)
committerQt by Nokia <qt-info@nokia.com>
Sat, 7 Jan 2012 16:25:00 +0000 (17:25 +0100)
We will insert an preEditString by QInputMethodEvent
See:
Task-number: QTCREATORBUG-5633
Task-number: QTCREATORBUG-6082

Change-Id: I8cfc7ab2543455dfdff8ec3df983d384513453e0
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
src/gui/text/qtextcursor.cpp

index 10bbff3..6bbf1be 100644 (file)
@@ -495,6 +495,8 @@ bool QTextCursorPrivate::movePosition(QTextCursor::MoveOperation op, QTextCursor
             break;
         }
         newPosition = blockIt.position() + line.textStart() + line.textLength();
+        if (newPosition >= priv->length())
+            newPosition = priv->length() - 1;
         if (line.lineNumber() < layout->lineCount() - 1) {
             const QString text = blockIt.text();
             // ###### this relies on spaces being the cause for linebreaks.