diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/EditView.cxx | 2 | ||||
-rw-r--r-- | src/PositionCache.cxx | 6 | ||||
-rw-r--r-- | src/PositionCache.h | 2 |
3 files changed, 5 insertions, 5 deletions
diff --git a/src/EditView.cxx b/src/EditView.cxx index cc7b5dcf5..3ba1ee4e5 100644 --- a/src/EditView.cxx +++ b/src/EditView.cxx @@ -599,7 +599,7 @@ void EditView::LayoutLine(const EditModel &model, Surface *surface, const ViewSt // Check for wrapIndent minimum if ((FlagSet(vstyle.wrap.visualFlags, WrapVisualFlag::Start)) && (ll->wrapIndent < vstyle.aveCharWidth)) ll->wrapIndent = vstyle.aveCharWidth; // Indent to show start visual - ll->WrapLine(model.pdoc, posLineStart, vstyle.wrap.state); + ll->WrapLine(model.pdoc, posLineStart, vstyle.wrap.state, width); } ll->validity = LineLayout::ValidLevel::lines; } diff --git a/src/PositionCache.cxx b/src/PositionCache.cxx index a0aece160..a0b7f3129 100644 --- a/src/PositionCache.cxx +++ b/src/PositionCache.cxx @@ -326,7 +326,7 @@ int LineLayout::EndLineStyle() const noexcept { return styles[numCharsBeforeEOL > 0 ? numCharsBeforeEOL-1 : 0]; } -void LineLayout::WrapLine(const Document *pdoc, Sci::Position posLineStart, Wrap wrapState) { +void LineLayout::WrapLine(const Document *pdoc, Sci::Position posLineStart, Wrap wrapState, XYPOSITION wrapWidth) { // Document wants document positions but simpler to work in line positions // so take care of adding and subtracting line start in a lambda. auto CharacterBoundary = [=](Sci::Position i, Sci::Position moveDir) noexcept -> Sci::Position { @@ -335,7 +335,7 @@ void LineLayout::WrapLine(const Document *pdoc, Sci::Position posLineStart, Wrap lines = 0; // Calculate line start positions based upon width. Sci::Position lastLineStart = 0; - XYPOSITION startOffset = widthLine; + XYPOSITION startOffset = wrapWidth; Sci::Position p = 0; while (p < numCharsInLine) { while (p < numCharsInLine && positions[p + 1] < startOffset) { @@ -377,7 +377,7 @@ void LineLayout::WrapLine(const Document *pdoc, Sci::Position posLineStart, Wrap AddLineStart(lastLineStart); startOffset = positions[lastLineStart]; // take into account the space for start wrap mark and indent - startOffset += widthLine - wrapIndent; + startOffset += wrapWidth - wrapIndent; p = lastLineStart + 1; } } diff --git a/src/PositionCache.h b/src/PositionCache.h index e830b67dc..231b9791e 100644 --- a/src/PositionCache.h +++ b/src/PositionCache.h @@ -107,7 +107,7 @@ public: Interval Span(int start, int end) const noexcept; Interval SpanByte(int index) const noexcept; int EndLineStyle() const noexcept; - void WrapLine(const Document *pdoc, Sci::Position posLineStart, Wrap wrapState); + void WrapLine(const Document *pdoc, Sci::Position posLineStart, Wrap wrapState, XYPOSITION wrapWidth); }; struct ScreenLine : public IScreenLine { |