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

Commit b12318be authored by Alan Lau's avatar Alan Lau Committed by Android (Google) Code Review
Browse files

Merge "Revert "Revert "DO NOT MERGE Fix line breaking for clusters in narrow...

Merge "Revert "Revert "DO NOT MERGE Fix line breaking for clusters in narrow views""" into klp-modular-dev
parents 06a84554 1fa3c9be
Loading
Loading
Loading
Loading
+14 −5
Original line number Diff line number Diff line
@@ -380,7 +380,7 @@ public class StaticLayout extends Layout {
                                okBottom = fitBottom;
                        }
                    } else {
                        final boolean moreChars = (j + 1 < spanEnd);
                        final boolean moreChars;
                        int endPos;
                        int above, below, top, bottom;
                        float currentTextWidth;
@@ -392,6 +392,7 @@ public class StaticLayout extends Layout {
                            top = okTop;
                            bottom = okBottom;
                            currentTextWidth = okWidth;
                            moreChars = (j + 1 < spanEnd);
                        } else if (fit != here) {
                            endPos = fit;
                            above = fitAscent;
@@ -399,13 +400,21 @@ public class StaticLayout extends Layout {
                            top = fitTop;
                            bottom = fitBottom;
                            currentTextWidth = fitWidth;
                            moreChars = (j + 1 < spanEnd);
                        } else {
                            // must make progress, so take next character
                            endPos = here + 1;
                            above = fm.ascent;
                            below = fm.descent;
                            top = fm.top;
                            bottom = fm.bottom;
                            // but to deal properly with clusters
                            // take all zero width characters following that
                            while (endPos < spanEnd && widths[endPos - paraStart] == 0) {
                                endPos++;
                            }
                            above = fmAscent;
                            below = fmDescent;
                            top = fmTop;
                            bottom = fmBottom;
                            currentTextWidth = widths[here - paraStart];
                            moreChars = (endPos < spanEnd);
                        }

                        v = out(source, here, endPos,