TextEditor: Fix block for visible row calculation

Take into account that a block can contain multiple visible rows.

Change-Id: Ifedeb113b3c1a6a374fa9418106e612c56559cba
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
David Schulz
2017-10-20 08:05:47 +02:00
parent b1a3c0bba4
commit 0c0c10b167

View File

@@ -8125,15 +8125,12 @@ QTextBlock TextEditorWidget::blockForVisibleRow(int row) const
return QTextBlock();
QTextBlock block = firstVisibleBlock();
for (int i = 0; i < count; ++i) {
if (!block.isValid() || i == row)
for (int i = 0; i < count;) {
if (!block.isValid() || i >= row)
return block;
while (block.isValid()) {
block = block.next();
if (block.isVisible())
break;
}
i += block.lineCount();
block = d->nextVisibleBlock(block);
}
return QTextBlock();