summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libs/minikin/Measurement.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/libs/minikin/Measurement.cpp b/libs/minikin/Measurement.cpp
index 0b68ac5..a7bc64b 100644
--- a/libs/minikin/Measurement.cpp
+++ b/libs/minikin/Measurement.cpp
@@ -41,7 +41,8 @@ static float getRunAdvance(Layout& layout, const uint16_t* buf, size_t layoutSta
clusterWidth = charAdvance;
}
}
- if (offset < start + count && layout.getCharAdvance(offset - layoutStart) == 0.0f) {
+ if (offset < start + count && layout.getCharAdvance(offset - layoutStart) == 0.0f &&
+ !GraphemeBreak::isGraphemeBreak(buf, start, count, offset)) {
// 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