diff options
author | J-P Nurmi <jpnurmi@digia.com> | 2013-05-13 18:14:34 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-05-22 12:39:38 +0200 |
commit | 8c60f86bdfb1bdeb1e0dab9c81cd53e46e4af221 (patch) | |
tree | 40c9a2d71d9d8ddaf33a0dd7d2cb4eb8bf72b8ff /src | |
parent | 5e1e111af3675dc1fae626c22ca51f295bf27a08 (diff) |
QQuickTextControl: emit cursorPositionChanged() only if it changed
Change-Id: Id6fe03677e93119a63bfe87ade3cd333bf4890a1
Reviewed-by: Caroline Chao <caroline.chao@digia.com>
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/quick/items/qquicktextcontrol.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/quick/items/qquicktextcontrol.cpp b/src/quick/items/qquicktextcontrol.cpp index d0c4aad64b..e22c84879b 100644 --- a/src/quick/items/qquicktextcontrol.cpp +++ b/src/quick/items/qquicktextcontrol.cpp @@ -298,6 +298,8 @@ void QQuickTextControlPrivate::setContent(Qt::TextFormat format, const QString & bool previousUndoRedoState = doc->isUndoRedoEnabled(); doc->setUndoRedoEnabled(false); + const int oldCursorPos = cursor.position(); + // avoid multiple textChanged() signals being emitted qmlobject_disconnect(doc, QTextDocument, SIGNAL(contentsChanged()), q, QQuickTextControl, SIGNAL(textChanged())); @@ -341,7 +343,8 @@ void QQuickTextControlPrivate::setContent(Qt::TextFormat format, const QString & doc->setModified(false); q->updateCursorRectangle(true); - emit q->cursorPositionChanged(); + if (cursor.position() != oldCursorPos) + emit q->cursorPositionChanged(); } void QQuickTextControlPrivate::setCursorPosition(const QPointF &pos) |