diff options
author | David Schulz <david.schulz@qt.io> | 2018-09-28 09:54:44 +0200 |
---|---|---|
committer | David Schulz <david.schulz@qt.io> | 2018-09-28 08:55:03 +0000 |
commit | b6b756e737ace6819d322b6523b3f5d1ab12ebbd (patch) | |
tree | f45f98253ff2dfca2a70e4c4976b580de65e60d4 | |
parent | 8d609692b397f2fad522ec35a430f92bf691f44d (diff) |
Editor: Do not jump over invisible blocks in paintEvent sub routine
The paintEvent relies on invisible blocks to find
collapsed blocks and paint the collapsed block popup.
Task-number: QTCREATORBUG-21040
Change-Id: Id50e8602722fd807e57fa008cf9fd8106ffdafe1
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
-rw-r--r-- | src/plugins/texteditor/texteditor.cpp | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/plugins/texteditor/texteditor.cpp b/src/plugins/texteditor/texteditor.cpp index 5e3d952db7..6dbb16db02 100644 --- a/src/plugins/texteditor/texteditor.cpp +++ b/src/plugins/texteditor/texteditor.cpp @@ -4577,7 +4577,6 @@ void TextEditorWidgetPrivate::paintReplacement(PaintEventData &data, QPainter &p qreal top) const { QTextBlock nextBlock = data.block.next(); - QTextBlock nextVisibleBlock = TextEditor::nextVisibleBlock(data.block, data.doc); if (nextBlock.isValid() && !nextBlock.isVisible() && q->replacementVisible(data.block.blockNumber())) { const bool selectThis = (data.textCursor.hasSelection() @@ -4615,13 +4614,13 @@ void TextEditorWidgetPrivate::paintReplacement(PaintEventData &data, QPainter &p replacement.prepend(nextBlock.text().trimmed().left(1)); } - data.block = nextVisibleBlock.previous(); - if (!data.block.isValid()) - data.block = data.doc->lastBlock(); + QTextBlock nextVisibleBlock = TextEditor::nextVisibleBlock(data.block, data.doc); + if (!nextVisibleBlock.isValid()) + nextVisibleBlock = data.doc->lastBlock(); - if (TextBlockUserData *blockUserData = TextDocumentLayout::testUserData(data.block)) { + if (TextBlockUserData *blockUserData = TextDocumentLayout::testUserData(nextVisibleBlock)) { if (blockUserData->foldingEndIncluded()) { - QString right = data.block.text().trimmed(); + QString right = nextVisibleBlock.text().trimmed(); if (right.endsWith(QLatin1Char(';'))) { right.chop(1); right = right.trimmed(); |