diff --git a/src/plugins/texteditor/basetexteditor.cpp b/src/plugins/texteditor/basetexteditor.cpp index 8c23d975df5d876a7a04d7b85ad8c6d76b2df5ff..80a1f0268ccaa438b1eebe296eea80572eb79803 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 906e73a14fe2c8cb2c221956511f267690148f41..345540829257bcc2fb7634c461f52db08ac67e32 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; }