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

Commit 677490ea authored by Anish Athalye's avatar Anish Athalye Committed by Android (Google) Code Review
Browse files

Merge "Fix line breaking for clusters in narrow views"

parents b3e41145 9cd3bccd
Loading
Loading
Loading
Loading
+14 −5
Original line number Diff line number Diff line
@@ -379,7 +379,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;
@@ -391,6 +391,7 @@ public class StaticLayout extends Layout {
                            top = okTop;
                            bottom = okBottom;
                            currentTextWidth = okWidth;
                            moreChars = (j + 1 < spanEnd);
                        } else if (fit != here) {
                            endPos = fit;
                            above = fitAscent;
@@ -398,13 +399,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,