From 9b4055122c50af064e4102af35aaa7735a6d7345 Mon Sep 17 00:00:00 2001
From: mae <qt-info@nokia.com>
Date: Mon, 7 Sep 2009 16:15:59 +0200
Subject: [PATCH] Fix code folding issue with empty nested blocks like in:

void main()
{
{
}
int i;
}
---
 src/plugins/texteditor/basetexteditor.cpp | 2 +-
 src/plugins/texteditor/basetexteditor.h   | 7 ++-----
 2 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/src/plugins/texteditor/basetexteditor.cpp b/src/plugins/texteditor/basetexteditor.cpp
index 8c23d975df5..80a1f0268cc 100644
--- a/src/plugins/texteditor/basetexteditor.cpp
+++ b/src/plugins/texteditor/basetexteditor.cpp
@@ -2833,7 +2833,7 @@ void BaseTextEditor::extraAreaMouseEvent(QMouseEvent *e)
                             document()->findBlockByNumber(d->m_highlightBlocksInfo.open.last()).position()
                             );
                     QTextBlock c = cursor.block();
-                    if (!TextBlockUserData::canCollapse(c))
+                    if (TextBlockUserData::hasCollapseAfter(c.previous()))
                         c = c.previous();
                     toggleBlockVisible(c);
                     d->moveCursorVisible(false);
diff --git a/src/plugins/texteditor/basetexteditor.h b/src/plugins/texteditor/basetexteditor.h
index 906e73a14fe..34554082925 100644
--- a/src/plugins/texteditor/basetexteditor.h
+++ b/src/plugins/texteditor/basetexteditor.h
@@ -145,13 +145,10 @@ public:
 
     inline static bool hasCollapseAfter(const QTextBlock & block)
     {
-        if (!block.isValid())
-            return false;
-        TextBlockUserData *data = static_cast<TextBlockUserData*>(block.userData());
-        if (data && data->collapseMode() != NoCollapse) {
+        if (!block.isValid()) {
             return false;
         } else if (block.next().isValid()) {
-            data = static_cast<TextBlockUserData*>(block.next().userData());
+            TextBlockUserData *data = static_cast<TextBlockUserData*>(block.next().userData());
             if (data && data->collapseMode() == TextBlockUserData::CollapseThis &&  !data->m_ifdefedOut)
                 return true;
         }
-- 
GitLab