From 1f0fd959fa9c8f4de6b448671ec63746ff42299a Mon Sep 17 00:00:00 2001
From: Nikolai Kosjar <nikolai.kosjar@digia.com>
Date: Tue, 4 Mar 2014 09:45:41 -0300
Subject: [PATCH] CppEditor: Do not cancel highlighter on user interaction

e.g. changing cursor position or editing text.

CPPEditorWidget::updateUses() does not depend on the highlighter, but
only on the semantic info update.

Task-number: QTCREATORBUG-11367
Change-Id: Ia9f5ed7c2adc6899995a5d966a20e45b2f87d9e3
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
---
 src/plugins/cppeditor/cppeditor.cpp            | 5 -----
 src/plugins/cpptools/cpptoolseditorsupport.cpp | 3 ++-
 2 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp
index eb743965b41..00b240f7795 100644
--- a/src/plugins/cppeditor/cppeditor.cpp
+++ b/src/plugins/cppeditor/cppeditor.cpp
@@ -1158,11 +1158,6 @@ void CPPEditorWidget::updateOutlineToolTip()
 
 void CPPEditorWidget::updateUses()
 {
-    if (m_highlightWatcher) {
-        m_highlightWatcher->cancel();
-        m_highlightWatcher.reset();
-    }
-
     // Block premature semantic info calculation when editor is created.
     if (m_modelManager && m_modelManager->cppEditorSupport(editor())->initialized())
         m_updateUsesTimer->start();
diff --git a/src/plugins/cpptools/cpptoolseditorsupport.cpp b/src/plugins/cpptools/cpptoolseditorsupport.cpp
index 664d6761a53..084f4822e92 100644
--- a/src/plugins/cpptools/cpptoolseditorsupport.cpp
+++ b/src/plugins/cpptools/cpptoolseditorsupport.cpp
@@ -391,10 +391,11 @@ void CppEditorSupport::startHighlighting()
         if (m_lastHighlightRevision == revision)
             return;
 
-        m_lastHighlightRevision = revision;
+        m_highlighter.cancel();
         static const Document::Ptr dummyDoc;
         static const Snapshot dummySnapshot;
         m_highlighter = m_highlightingSupport->highlightingFuture(dummyDoc, dummySnapshot);
+        m_lastHighlightRevision = revision;
         emit highlighterStarted(&m_highlighter, m_lastHighlightRevision);
     }
 }
-- 
GitLab