From 8c60f86bdfb1bdeb1e0dab9c81cd53e46e4af221 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Mon, 13 May 2013 18:14:34 +0200 Subject: QQuickTextControl: emit cursorPositionChanged() only if it changed Change-Id: Id6fe03677e93119a63bfe87ade3cd333bf4890a1 Reviewed-by: Caroline Chao Reviewed-by: Pierre Rossi --- src/quick/items/qquicktextcontrol.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/quick/items/qquicktextcontrol.cpp') 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) -- cgit v1.2.3