From 4bdc0664eb2daaa3b9b85aeb634395ecfc95a557 Mon Sep 17 00:00:00 2001
From: mae <qt-info@nokia.com>
Date: Wed, 27 May 2009 20:49:57 +0200
Subject: [PATCH] Small fix for parentheses matching: give the
 syntaxhighlighter a chance to update the parentheses information.

---
 src/plugins/texteditor/basetexteditor.cpp | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/plugins/texteditor/basetexteditor.cpp b/src/plugins/texteditor/basetexteditor.cpp
index 84275bc3483..8628b60b619 100644
--- a/src/plugins/texteditor/basetexteditor.cpp
+++ b/src/plugins/texteditor/basetexteditor.cpp
@@ -2552,7 +2552,9 @@ void BaseTextEditor::slotCursorPositionChanged()
         if (extraSelections(ParenthesesMatchingSelection).isEmpty()) {
             d->m_parenthesesMatchingTimer->start(50);
         } else {
-            _q_matchParentheses();
+             // use 0-timer, not direct call, to give the syntax highlighter a chance
+            // to update the parantheses information
+            d->m_parenthesesMatchingTimer->start(0);
         }
     }
 
@@ -3536,6 +3538,7 @@ void BaseTextEditor::_q_matchParentheses()
         return;
 
 
+    qDebug() << "_q_matchParentheses()" << textCursor().position();
     QTextCursor backwardMatch = textCursor();
     QTextCursor forwardMatch = textCursor();
     const TextBlockUserData::MatchType backwardMatchType = TextBlockUserData::matchCursorBackward(&backwardMatch);
@@ -3545,11 +3548,13 @@ void BaseTextEditor::_q_matchParentheses()
 
     if (backwardMatchType == TextBlockUserData::NoMatch && forwardMatchType == TextBlockUserData::NoMatch) {
         setExtraSelections(ParenthesesMatchingSelection, extraSelections); // clear
+        qDebug() << "no match";
         return;
     }
 
     int animatePosition = -1;
     if (backwardMatch.hasSelection()) {
+        qDebug() << "backward match";
         QTextEdit::ExtraSelection sel;
         if (backwardMatchType == TextBlockUserData::Mismatch) {
             sel.cursor = backwardMatch;
@@ -3578,6 +3583,7 @@ void BaseTextEditor::_q_matchParentheses()
     }
 
     if (forwardMatch.hasSelection()) {
+        qDebug() << "forward match";
         QTextEdit::ExtraSelection sel;
         if (forwardMatchType == TextBlockUserData::Mismatch) {
             sel.cursor = forwardMatch;
-- 
GitLab