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

Commit 1fa3c9be authored by Alan Lau's avatar Alan Lau
Browse files

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

This reverts commit cbeef01c.

Change-Id: I170ccb2264941e8a8b090b3bb553970414f0c4eb
parent cbeef01c
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,