From: J-P Nurmi Date: Mon, 13 May 2013 16:14:34 +0000 (+0200) Subject: QQuickTextControl: emit cursorPositionChanged() only if it changed X-Git-Url: http://git.silmor.de/gitweb/?a=commitdiff_plain;h=8c60f86bdfb1bdeb1e0dab9c81cd53e46e4af221;p=konrad%2Fqtdeclarative.git QQuickTextControl: emit cursorPositionChanged() only if it changed Change-Id: Id6fe03677e93119a63bfe87ade3cd333bf4890a1 Reviewed-by: Caroline Chao Reviewed-by: Pierre Rossi --- diff --git a/src/quick/items/qquicktextcontrol.cpp b/src/quick/items/qquicktextcontrol.cpp index d0c4aad..e22c848 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)