|
@@ -1757,9 +1757,17 @@ continue_on_failed2:
|
|
|
first_min_x64 = FFMIN(glyph->bbox.xMin, first_min_x64);
|
|
first_min_x64 = FFMIN(glyph->bbox.xMin, first_min_x64);
|
|
|
}
|
|
}
|
|
|
if (t == hb->glyph_count - 1) {
|
|
if (t == hb->glyph_count - 1) {
|
|
|
- w64 += glyph->bbox.xMax;
|
|
|
|
|
- last_max_x64 = FFMAX(glyph->bbox.xMax, last_max_x64);
|
|
|
|
|
- cur_line->offset_right64 = glyph->bbox.xMax;
|
|
|
|
|
|
|
+ // The following code measures the width of the line up to the last
|
|
|
|
|
+ // character's horizontal advance
|
|
|
|
|
+ int last_char_width = hb->glyph_pos[t].x_advance;
|
|
|
|
|
+
|
|
|
|
|
+ // The following code measures the width of the line up to the rightmost
|
|
|
|
|
+ // visible pixel of the last character
|
|
|
|
|
+ // int last_char_width = glyph->bbox.xMax;
|
|
|
|
|
+
|
|
|
|
|
+ w64 += last_char_width;
|
|
|
|
|
+ last_max_x64 = FFMAX(last_char_width, last_max_x64);
|
|
|
|
|
+ cur_line->offset_right64 = last_char_width;
|
|
|
} else {
|
|
} else {
|
|
|
if (is_tab) {
|
|
if (is_tab) {
|
|
|
int size = s->blank_advance64 * s->tabsize;
|
|
int size = s->blank_advance64 * s->tabsize;
|