diff options
| author | mae <qt-info@nokia.com> | 2010-05-21 16:06:31 +0200 |
|---|---|---|
| committer | mae <qt-info@nokia.com> | 2010-05-21 16:06:31 +0200 |
| commit | 076c03498f3615e68a0c056f2005165799160c49 (patch) | |
| tree | 105280951b3e1dafc477af838d34abdcbda00148 /src | |
| parent | e9d184155232805d4c82eb164768282fc61fca38 (diff) | |
| download | qt-creator-076c03498f3615e68a0c056f2005165799160c49.tar.gz | |
Fix critical vertical block selection issue
Vertical block selections could be painted where there was no
selection, or they could jump randomly to columns futher right.
Reviewed-by: dt
Diffstat (limited to 'src')
| -rw-r--r-- | src/plugins/find/basetextfind.cpp | 5 | ||||
| -rw-r--r-- | src/plugins/texteditor/basetexteditor.cpp | 2 |
2 files changed, 4 insertions, 3 deletions
diff --git a/src/plugins/find/basetextfind.cpp b/src/plugins/find/basetextfind.cpp index 1a9cbe3f5c..d2ddfc0441 100644 --- a/src/plugins/find/basetextfind.cpp +++ b/src/plugins/find/basetextfind.cpp @@ -325,10 +325,11 @@ void BaseTextFind::defineFindScope() verticalBlockSelection = m_plaineditor->property("verticalBlockSelection").toInt(); if (verticalBlockSelection) { - int findScopeFromColumn = qMin(m_findScopeStart.positionInBlock()+1, + QTextCursor findScopeVisualStart(document()->docHandle(), cursor.selectionStart()); + int findScopeFromColumn = qMin(findScopeVisualStart.positionInBlock(), m_findScopeEnd.positionInBlock()); int findScopeToColumn = findScopeFromColumn + verticalBlockSelection; - m_findScopeStart.setPosition(m_findScopeStart.block().position() + findScopeFromColumn - 1); + m_findScopeStart.setPosition(findScopeVisualStart.block().position() + findScopeFromColumn - 1); m_findScopeEnd.setPosition(m_findScopeEnd.block().position() + qMin(m_findScopeEnd.block().length()-1, findScopeToColumn)); m_findScopeVerticalBlockSelection = verticalBlockSelection; diff --git a/src/plugins/texteditor/basetexteditor.cpp b/src/plugins/texteditor/basetexteditor.cpp index fca4b85065..2f7b32c918 100644 --- a/src/plugins/texteditor/basetexteditor.cpp +++ b/src/plugins/texteditor/basetexteditor.cpp @@ -2466,7 +2466,7 @@ void BaseTextEditor::paintEvent(QPaintEvent *e) const QAbstractTextDocumentLayout::Selection &range = context.selections.at(i); const int selStart = range.cursor.selectionStart() - blpos; const int selEnd = range.cursor.selectionEnd() - blpos; - if (selStart <= bllen && selEnd >= 0 + if (selStart < bllen && selEnd >= 0 && selEnd >= selStart) { QTextLayout::FormatRange o; o.start = selStart; |
