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

This reverts commit cbeef01cce.

Change-Id: I170ccb2264941e8a8b090b3bb553970414f0c4eb
This commit is contained in:
Alan Lau
2014-07-30 17:35:20 +00:00
parent cbeef01cce
commit 1fa3c9bef2

View File

@@ -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,