diff options
-rw-r--r-- | src/quick/items/qquicktextedit.cpp | 6 | ||||
-rw-r--r-- | src/quick/items/qquicktextedit_p.h | 3 |
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(); |