diff options
Diffstat (limited to 'src/EditView.cxx')
-rw-r--r-- | src/EditView.cxx | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/EditView.cxx b/src/EditView.cxx index dc8ba1c2d..713aa482a 100644 --- a/src/EditView.cxx +++ b/src/EditView.cxx @@ -628,7 +628,7 @@ Range EditView::RangeDisplayLine(Surface *surface, const EditModel &model, Sci:: const Sci::Line lineStartSet = model.pcs->DisplayFromDoc(lineDoc); const int subLine = static_cast<int>(lineVisible - lineStartSet); if (subLine < ll->lines) { - rangeSubLine = ll->SubLineRange(subLine); + rangeSubLine = ll->SubLineRange(subLine, LineLayout::Scope::visibleOnly); if (subLine == ll->lines-1) { rangeSubLine.end = model.pdoc->LineStart(lineDoc + 1) - positionLineStart; @@ -658,7 +658,7 @@ SelectionPosition EditView::SPositionFromLocation(Surface *surface, const EditMo const Sci::Line lineStartSet = model.pcs->DisplayFromDoc(lineDoc); const int subLine = static_cast<int>(visibleLine - lineStartSet); if (subLine < ll->lines) { - const Range rangeSubLine = ll->SubLineRange(subLine); + const Range rangeSubLine = ll->SubLineRange(subLine, LineLayout::Scope::visibleOnly); const XYPOSITION subLineStart = ll->positions[rangeSubLine.start]; if (subLine > 0) // Wrapped pt.x -= ll->wrapIndent; @@ -696,7 +696,7 @@ SelectionPosition EditView::SPositionFromLineX(Surface *surface, const EditModel if (surface && ll) { const Sci::Position posLineStart = model.pdoc->LineStart(lineDoc); LayoutLine(model, lineDoc, surface, vs, ll, model.wrapWidth); - const Range rangeSubLine = ll->SubLineRange(0); + const Range rangeSubLine = ll->SubLineRange(0, LineLayout::Scope::visibleOnly); const XYPOSITION subLineStart = ll->positions[rangeSubLine.start]; const Sci::Position positionInLine = ll->FindPositionFromX(x + subLineStart, rangeSubLine, false); if (positionInLine < rangeSubLine.end) { @@ -1883,7 +1883,8 @@ void EditView::DrawLine(Surface *surface, const EditModel &model, const ViewStyl const Sci::Position posLineStart = model.pdoc->LineStart(line); - const Range lineRange = ll->SubLineRange(subLine); + const Range lineRange = ll->SubLineRange(subLine, LineLayout::Scope::visibleOnly); + const Range lineRangeIncludingEnd = ll->SubLineRange(subLine, LineLayout::Scope::includeEnd); const XYACCUMULATOR subLineStart = ll->positions[lineRange.start]; if ((ll->wrapIndent != 0) && (subLine > 0)) { @@ -1906,7 +1907,7 @@ void EditView::DrawLine(Surface *surface, const EditModel &model, const ViewStyl } if (phase & drawIndicatorsBack) { - DrawIndicators(surface, model, vsDraw, ll, line, xStart, rcLine, subLine, lineRange.end, true, model.hoverIndicatorPos); + DrawIndicators(surface, model, vsDraw, ll, line, xStart, rcLine, subLine, lineRangeIncludingEnd.end, true, model.hoverIndicatorPos); DrawEdgeLine(surface, vsDraw, ll, rcLine, lineRange, xStart); DrawMarkUnderline(surface, model, vsDraw, line, rcLine); } @@ -1922,7 +1923,7 @@ void EditView::DrawLine(Surface *surface, const EditModel &model, const ViewStyl } if (phase & drawIndicatorsFore) { - DrawIndicators(surface, model, vsDraw, ll, line, xStart, rcLine, subLine, lineRange.end, false, model.hoverIndicatorPos); + DrawIndicators(surface, model, vsDraw, ll, line, xStart, rcLine, subLine, lineRangeIncludingEnd.end, false, model.hoverIndicatorPos); } DrawFoldDisplayText(surface, model, vsDraw, ll, line, xStart, rcLine, subLine, subLineStart, phase); |