forked from qt-creator/qt-creator
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>
This commit is contained in:
@@ -4577,7 +4577,6 @@ void TextEditorWidgetPrivate::paintReplacement(PaintEventData &data, QPainter &p
|
|||||||
qreal top) const
|
qreal top) const
|
||||||
{
|
{
|
||||||
QTextBlock nextBlock = data.block.next();
|
QTextBlock nextBlock = data.block.next();
|
||||||
QTextBlock nextVisibleBlock = TextEditor::nextVisibleBlock(data.block, data.doc);
|
|
||||||
|
|
||||||
if (nextBlock.isValid() && !nextBlock.isVisible() && q->replacementVisible(data.block.blockNumber())) {
|
if (nextBlock.isValid() && !nextBlock.isVisible() && q->replacementVisible(data.block.blockNumber())) {
|
||||||
const bool selectThis = (data.textCursor.hasSelection()
|
const bool selectThis = (data.textCursor.hasSelection()
|
||||||
@@ -4615,13 +4614,13 @@ void TextEditorWidgetPrivate::paintReplacement(PaintEventData &data, QPainter &p
|
|||||||
replacement.prepend(nextBlock.text().trimmed().left(1));
|
replacement.prepend(nextBlock.text().trimmed().left(1));
|
||||||
}
|
}
|
||||||
|
|
||||||
data.block = nextVisibleBlock.previous();
|
QTextBlock nextVisibleBlock = TextEditor::nextVisibleBlock(data.block, data.doc);
|
||||||
if (!data.block.isValid())
|
if (!nextVisibleBlock.isValid())
|
||||||
data.block = data.doc->lastBlock();
|
nextVisibleBlock = data.doc->lastBlock();
|
||||||
|
|
||||||
if (TextBlockUserData *blockUserData = TextDocumentLayout::testUserData(data.block)) {
|
if (TextBlockUserData *blockUserData = TextDocumentLayout::testUserData(nextVisibleBlock)) {
|
||||||
if (blockUserData->foldingEndIncluded()) {
|
if (blockUserData->foldingEndIncluded()) {
|
||||||
QString right = data.block.text().trimmed();
|
QString right = nextVisibleBlock.text().trimmed();
|
||||||
if (right.endsWith(QLatin1Char(';'))) {
|
if (right.endsWith(QLatin1Char(';'))) {
|
||||||
right.chop(1);
|
right.chop(1);
|
||||||
right = right.trimmed();
|
right = right.trimmed();
|
||||||
|
Reference in New Issue
Block a user