diff options
-rw-r--r-- | src/Editor.cxx | 4 | ||||
-rw-r--r-- | src/Selection.cxx | 3 |
2 files changed, 4 insertions, 3 deletions
diff --git a/src/Editor.cxx b/src/Editor.cxx index eeee752a8..f1210e8c9 100644 --- a/src/Editor.cxx +++ b/src/Editor.cxx @@ -225,7 +225,6 @@ void Editor::InvalidateStyleData() { palette.Release(); llc.Invalidate(LineLayout::llInvalid); posCache.Clear(); - SetRectangularRange(); } void Editor::InvalidateStyleRedraw() { @@ -258,6 +257,7 @@ void Editor::RefreshStyleData() { wrapAddIndent = vs.aveCharWidth; // must indent to show start visual } SetScrollBars(); + SetRectangularRange(); } } @@ -3077,7 +3077,7 @@ void Editor::DrawCarets(Surface *surface, ViewStyle &vsDraw, int lineDoc, int xS if (widthOverstrikeCaret < 3) // Make sure its visible widthOverstrikeCaret = 3; - if (offset > ll->LineStart(subLine)) + if (posCaret > SelectionPosition(ll->LineStart(subLine) + rangeLine.start)) caretWidthOffset = 1; // Move back so overlaps both character cells. if (posDrag.IsValid()) { /* Dragging text, use a line caret */ diff --git a/src/Selection.cxx b/src/Selection.cxx index 715319602..d4d4d8fe8 100644 --- a/src/Selection.cxx +++ b/src/Selection.cxx @@ -113,6 +113,7 @@ bool SelectionRange::ContainsCharacter(int posCharacter) const { bool SelectionRange::Intersect(int start, int end, SelectionPosition &selStart, SelectionPosition &selEnd) const { SelectionPosition spEnd(end, 100000); // Large amount of virtual space + SelectionPosition spStart(start); SelectionPosition first; SelectionPosition last; if (anchor > caret) { @@ -122,7 +123,7 @@ bool SelectionRange::Intersect(int start, int end, SelectionPosition &selStart, first = anchor; last = caret; } - if ((first < spEnd) && (last.Position() > start)) { + if ((first < spEnd) && (last > spStart)) { if (start > first.Position()) selStart = SelectionPosition(start); else |