Use context start correctly in getRunAdvance

We were not taking context start into account when deciding whether
to split a ligature, which was causing inconsistent behavior. This
patch consistently references the widths array relative to the start
of the context.

Bug: 21549197
Change-Id: I7c71e10c1af84354fefe782fc0b87120016e6555
This commit is contained in:
Raph Levien
2015-06-01 14:27:00 -07:00
parent e92a3c62b5
commit b77d0bd01b

View File

@@ -41,7 +41,7 @@ float getRunAdvance(Layout& layout, const uint16_t* buf, size_t start, size_t co
clusterWidth = charAdvance;
}
}
if (offset < start + count && layout.getCharAdvance(offset) == 0.0f) {
if (offset < start + count && layout.getCharAdvance(offset - start) == 0.0f) {
// In the middle of a cluster, distribute width of cluster so that each grapheme cluster
// gets an equal share.
// TODO: get caret information out of font when that's available