From 8c60f86bdfb1bdeb1e0dab9c81cd53e46e4af221 Mon Sep 17 00:00:00 2001
From: J-P Nurmi <jpnurmi@digia.com>
Date: Mon, 13 May 2013 18:14:34 +0200
Subject: [PATCH] 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>
---
 src/quick/items/qquicktextcontrol.cpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

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)
-- 
GitLab