diff --git a/src/chatdocumenthandler.cpp b/src/chatdocumenthandler.cpp index 460348866..472ee6beb 100644 --- a/src/chatdocumenthandler.cpp +++ b/src/chatdocumenthandler.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #include #include @@ -28,6 +29,7 @@ public: Sonnet::Settings settings; QList> errors; QString previousText; + QTimer rehighlightTimer; SyntaxHighlighter(QObject *parent) : QSyntaxHighlighter(parent) { @@ -39,9 +41,14 @@ public: connect(checker, &Sonnet::BackgroundChecker::misspelling, this, [this](const QString &word, int start) { errors += {start, word}; - rehighlight(); checker->continueChecking(); }); + connect(checker, &Sonnet::BackgroundChecker::done, this, [this]() { + rehighlightTimer.start(); + }); + rehighlightTimer.setInterval(100); + rehighlightTimer.setSingleShot(true); + rehighlightTimer.callOnTimeout(this, &QSyntaxHighlighter::rehighlight); } void highlightBlock(const QString &text) override {