From f35cd3c13f99c48b41d95789af2bdd0ccb1cc9e9 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Tue, 24 May 2022 09:56:23 +0200 Subject: [PATCH] Editor: skip unnecessary text mark priority reevaluation Only remove and add the text mark to the text block user data if the priority changed. In all other cases a layout update is sufficient. Amends a8cad01887db3612f829de5518d4a57ade45094a Change-Id: I9f8552e766838917c0e296cc7f7c7730669c45cd Reviewed-by: Christian Kandeler --- src/plugins/texteditor/textdocument.h | 2 +- src/plugins/texteditor/textmark.cpp | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/plugins/texteditor/textdocument.h b/src/plugins/texteditor/textdocument.h index 58e5ea972c7..b66046c076b 100644 --- a/src/plugins/texteditor/textdocument.h +++ b/src/plugins/texteditor/textdocument.h @@ -111,6 +111,7 @@ public: bool addMark(TextMark *mark); TextMarks marksAt(int line) const; void removeMark(TextMark *mark); + void updateLayout() const; void updateMark(TextMark *mark); void moveMark(TextMark *mark, int previousLine); void removeMarkFromMarksCache(TextMark *mark); @@ -187,7 +188,6 @@ private: void cleanWhitespace(QTextCursor &cursor, bool inEntireDocument, bool cleanIndentation); void ensureFinalNewLine(QTextCursor &cursor); void modificationChanged(bool modified); - void updateLayout() const; TextDocumentPrivate *d; }; diff --git a/src/plugins/texteditor/textmark.cpp b/src/plugins/texteditor/textmark.cpp index 447749fb1f4..386bd72ef27 100644 --- a/src/plugins/texteditor/textmark.cpp +++ b/src/plugins/texteditor/textmark.cpp @@ -242,13 +242,14 @@ void TextMark::removedFromEditor() void TextMark::updateMarker() { if (m_baseTextDocument) - m_baseTextDocument->updateMark(this); + m_baseTextDocument->updateLayout(); } void TextMark::setPriority(TextMark::Priority prioriy) { m_priority = prioriy; - updateMarker(); + if (m_baseTextDocument) + m_baseTextDocument->updateMark(this); } bool TextMark::isVisible() const