diff options
Diffstat (limited to 'src/EditView.cxx')
-rw-r--r-- | src/EditView.cxx | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/src/EditView.cxx b/src/EditView.cxx index 8215f7b68..e8c8562ec 100644 --- a/src/EditView.cxx +++ b/src/EditView.cxx @@ -670,8 +670,8 @@ Point EditView::LocationFromPosition(Surface *surface, const EditModel &model, S pt.y = static_cast<XYPOSITION>(subLine*vs.lineHeight); } } - pt.y += (lineVisible - topLine) * vs.lineHeight; - pt.x += pos.VirtualSpace() * vs.styles[ll->EndLineStyle()].spaceWidth; + pt.y += static_cast<XYPOSITION>((lineVisible - topLine) * vs.lineHeight); + pt.x += pos.VirtualSpaceWidth(vs.styles[ll->EndLineStyle()].spaceWidth); } return pt; } @@ -958,7 +958,7 @@ void EditView::DrawEOL(Surface *surface, const EditModel &model, const ViewStyle XYPOSITION virtualSpace = 0; if (lastSubLine) { const XYPOSITION spaceWidth = vsDraw.styles[ll->EndLineStyle()].spaceWidth; - virtualSpace = model.sel.VirtualSpaceFor(model.pdoc->LineEnd(line)) * spaceWidth; + virtualSpace = static_cast<XYPOSITION>(model.sel.VirtualSpaceFor(model.pdoc->LineEnd(line))) * spaceWidth; } const XYPOSITION xEol = ll->positions[lineEnd] - subLineStart; @@ -977,9 +977,9 @@ void EditView::DrawEOL(Surface *surface, const EditModel &model, const ViewStyle if (!portion.Empty()) { const XYPOSITION spaceWidth = vsDraw.styles[ll->EndLineStyle()].spaceWidth; rcSegment.left = xStart + ll->positions[portion.start.Position() - posLineStart] - - subLineStart+portion.start.VirtualSpace() * spaceWidth; + subLineStart + portion.start.VirtualSpaceWidth(spaceWidth); rcSegment.right = xStart + ll->positions[portion.end.Position() - posLineStart] - - subLineStart+portion.end.VirtualSpace() * spaceWidth; + subLineStart + portion.end.VirtualSpaceWidth(spaceWidth); rcSegment.left = (rcSegment.left > rcLine.left) ? rcSegment.left : rcLine.left; rcSegment.right = (rcSegment.right < rcLine.right) ? rcSegment.right : rcLine.right; surface->FillRectangleAligned(rcSegment, Fill( @@ -1149,8 +1149,8 @@ void EditView::DrawFoldDisplayText(Surface *surface, const EditModel &model, con } const XYPOSITION spaceWidth = vsDraw.styles[ll->EndLineStyle()].spaceWidth; - const XYPOSITION virtualSpace = model.sel.VirtualSpaceFor( - model.pdoc->LineEnd(line)) * spaceWidth; + const XYPOSITION virtualSpace = static_cast<XYPOSITION>(model.sel.VirtualSpaceFor( + model.pdoc->LineEnd(line))) * spaceWidth; rcSegment.left = xStart + ll->positions[ll->numCharsInLine] - subLineStart + virtualSpace + vsDraw.aveCharWidth; rcSegment.right = rcSegment.left + static_cast<XYPOSITION>(widthFoldDisplayText); @@ -1267,8 +1267,8 @@ void EditView::DrawEOLAnnotationText(Surface *surface, const EditModel &model, c leftBoxSpace + rightBoxSpace); const XYPOSITION spaceWidth = vsDraw.styles[ll->EndLineStyle()].spaceWidth; - const XYPOSITION virtualSpace = model.sel.VirtualSpaceFor( - model.pdoc->LineEnd(line)) * spaceWidth; + const XYPOSITION virtualSpace = static_cast<XYPOSITION>(model.sel.VirtualSpaceFor( + model.pdoc->LineEnd(line))) * spaceWidth; rcSegment.left = xStart + ll->positions[ll->numCharsInLine] - subLineStart + virtualSpace + vsDraw.aveCharWidth; @@ -1518,7 +1518,7 @@ void EditView::DrawCarets(Surface *surface, const EditModel &model, const ViewSt } const int offset = static_cast<int>(posCaret.Position() - posLineStart); const XYPOSITION spaceWidth = vsDraw.styles[ll->EndLineStyle()].spaceWidth; - const XYPOSITION virtualOffset = posCaret.VirtualSpace() * spaceWidth; + const XYPOSITION virtualOffset = posCaret.VirtualSpaceWidth(spaceWidth); if (ll->InLine(offset, subLine) && offset <= ll->numCharsBeforeEOL) { XYPOSITION xposCaret = ll->positions[offset] + virtualOffset - ll->positions[ll->LineStart(subLine)]; if (model.BidirectionalEnabled() && (posCaret.VirtualSpace() == 0)) { @@ -1785,7 +1785,9 @@ void DrawTranslucentSelection(Surface *surface, const EditModel &model, const Vi const ColourRGBA selectionBack = SelectionBackground( model, vsDraw, model.sel.RangeType(r)); const XYPOSITION spaceWidth = vsDraw.styles[ll->EndLineStyle()].spaceWidth; - const Interval intervalVirtual{ portion.start.VirtualSpace() * spaceWidth, portion.end.VirtualSpace() * spaceWidth }; + const Interval intervalVirtual{ + portion.start.VirtualSpaceWidth(spaceWidth), + portion.end.VirtualSpaceWidth(spaceWidth) }; if (model.BidirectionalEnabled()) { const SelectionSegment portionInSubLine = portionInLine.Subtract(lineRange.start); |