aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/quick/items/qquicktextedit.cpp6
-rw-r--r--src/quick/items/qquicktextedit_p.h3
2 files changed, 9 insertions, 0 deletions
diff --git a/src/quick/items/qquicktextedit.cpp b/src/quick/items/qquicktextedit.cpp
index b69d8fa03b..3c4d0d4b42 100644
--- a/src/quick/items/qquicktextedit.cpp
+++ b/src/quick/items/qquicktextedit.cpp
@@ -2011,6 +2011,7 @@ void QQuickTextEditPrivate::init()
qmlobject_connect(document, QQuickTextDocumentWithImageResources, SIGNAL(redoAvailable(bool)), q, QQuickTextEdit, SIGNAL(canRedoChanged()));
qmlobject_connect(document, QQuickTextDocumentWithImageResources, SIGNAL(imagesLoaded()), q, QQuickTextEdit, SLOT(updateSize()));
QObject::connect(document, &QQuickTextDocumentWithImageResources::contentsChange, q, &QQuickTextEdit::q_contentsChange);
+ QObject::connect(document->documentLayout(), &QAbstractTextDocumentLayout::updateBlock, q, &QQuickTextEdit::invalidateBlock);
document->setDefaultFont(font);
document->setDocumentMargin(textMargin);
@@ -2245,6 +2246,11 @@ void QQuickTextEdit::updateWholeDocument()
}
}
+void QQuickTextEdit::invalidateBlock(const QTextBlock &block)
+{
+ markDirtyNodesForRange(block.position(), block.position() + block.length(), 0);
+}
+
void QQuickTextEdit::updateCursor()
{
Q_D(QQuickTextEdit);
diff --git a/src/quick/items/qquicktextedit_p.h b/src/quick/items/qquicktextedit_p.h
index b84552d255..c6b7ce3699 100644
--- a/src/quick/items/qquicktextedit_p.h
+++ b/src/quick/items/qquicktextedit_p.h
@@ -50,6 +50,8 @@ QT_BEGIN_NAMESPACE
class QQuickTextDocument;
class QQuickTextEditPrivate;
+class QTextBlock;
+
class Q_QUICK_PRIVATE_EXPORT QQuickTextEdit : public QQuickImplicitSizeItem
{
Q_OBJECT
@@ -326,6 +328,7 @@ private Q_SLOTS:
void createCursor();
void q_canPasteChanged();
void updateWholeDocument();
+ void invalidateBlock(const QTextBlock &block);
void updateCursor();
void q_updateAlignment();
void updateSize();