Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f50aadd2 authored by Hawkwood Glazier's avatar Hawkwood Glazier
Browse files

[DO NOT MERGE] Prevent TextInterpolator from rendering nonprintable newlines

This is a smaller piece of a larger cherry-pick which is being
taken ahead of the full set to resolve merge conflicts in
other work.

Test: Manual
Bug: 229771520
Change-Id: Ibf1396c4570d891439a73dad0909ab05e6c3119a
parent 6030bb62
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -485,7 +485,13 @@ class TextInterpolator(
        val out = mutableListOf<List<PositionedGlyphs>>()
        for (lineNo in 0 until layout.lineCount) { // Shape all lines.
            val lineStart = layout.getLineStart(lineNo)
            val count = layout.getLineEnd(lineNo) - lineStart
            var count = layout.getLineEnd(lineNo) - lineStart
            // Do not render the last character in the line if it's a newline and unprintable
            val last = lineStart + count - 1
            if (last > lineStart && last < layout.text.length && layout.text[last] == '\n') {
                count--
            }

            val runs = mutableListOf<PositionedGlyphs>()
            TextShaper.shapeText(layout.text, lineStart, count, layout.textDirectionHeuristic,
                    paint) { _, _, glyphs, _ ->