diff options
author | David Schulz <david.schulz@qt.io> | 2017-10-20 08:05:47 +0200 |
---|---|---|
committer | David Schulz <david.schulz@qt.io> | 2017-10-23 10:58:18 +0000 |
commit | 0c0c10b1675365f3ad003909eb9c6c1fc175cc94 (patch) | |
tree | ddd666c86d84047d71efb54ef238392dff4df31a /src | |
parent | b1a3c0bba443e785cede838983f2e5c69fbd3bd6 (diff) | |
download | qt-creator-0c0c10b1675365f3ad003909eb9c6c1fc175cc94.tar.gz |
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>
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/texteditor/texteditor.cpp | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/src/plugins/texteditor/texteditor.cpp b/src/plugins/texteditor/texteditor.cpp index d86156feea..2336178ce0 100644 --- a/src/plugins/texteditor/texteditor.cpp +++ b/src/plugins/texteditor/texteditor.cpp @@ -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(); |