diff --git a/src/plugins/texteditor/refactoroverlay.cpp b/src/plugins/texteditor/refactoroverlay.cpp index e1f6ff2c7cd..a0c928858ca 100644 --- a/src/plugins/texteditor/refactoroverlay.cpp +++ b/src/plugins/texteditor/refactoroverlay.cpp @@ -25,14 +25,17 @@ RefactorOverlay::RefactorOverlay(TextEditor::TextEditorWidget *editor) : void RefactorOverlay::paint(QPainter *painter, const QRect &clip) { const auto firstBlock = m_editor->blockForVerticalOffset(clip.top()); + const int firstBlockNumber = firstBlock.isValid() ? firstBlock.blockNumber() : 0; const auto lastBlock = m_editor->blockForVerticalOffset(clip.bottom()); + const int lastBlockNumber = lastBlock.isValid() ? lastBlock.blockNumber() + : m_editor->blockCount() - 1; m_maxWidth = 0; for (const RefactorMarker &marker : std::as_const(m_markers)) { const int markerBlockNumber = marker.cursor.block().blockNumber(); - if (markerBlockNumber < firstBlock.blockNumber()) + if (markerBlockNumber < firstBlockNumber) continue; - if (markerBlockNumber > lastBlock.blockNumber()) + if (markerBlockNumber > lastBlockNumber) continue; paintMarker(marker, painter, clip); } diff --git a/src/plugins/texteditor/texteditoroverlay.cpp b/src/plugins/texteditor/texteditoroverlay.cpp index 4dfed80728b..ca15ff256bf 100644 --- a/src/plugins/texteditor/texteditoroverlay.cpp +++ b/src/plugins/texteditor/texteditoroverlay.cpp @@ -334,11 +334,14 @@ void TextEditorOverlay::paint(QPainter *painter, const QRect &clip) Q_UNUSED(clip) const auto firstBlock = m_editor->blockForVerticalOffset(clip.top()); + const int firstBlockNumber = firstBlock.isValid() ? firstBlock.blockNumber() : 0; const auto lastBlock = m_editor->blockForVerticalOffset(clip.bottom()); + const int lastBlockNumber = lastBlock.isValid() ? lastBlock.blockNumber() + : m_editor->blockCount() - 1; auto overlapsClip = [&](const OverlaySelection &selection) { - return selection.m_cursor_end.blockNumber() >= firstBlock.blockNumber() - && selection.m_cursor_begin.blockNumber() <= lastBlock.blockNumber(); + return selection.m_cursor_end.blockNumber() >= firstBlockNumber + && selection.m_cursor_begin.blockNumber() <= lastBlockNumber; }; for (int i = m_selections.size() - 1; i >= 0; --i) {