1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-09 13:10:57 -08:00

* src/macfont.m (mac_font_shape): Make sure that total_advance is increasing.

This commit is contained in:
YAMAMOTO Mitsuharu 2016-07-11 13:35:57 +09:00
parent 8dc4626a0b
commit bfeda891a5

View file

@ -3767,6 +3767,7 @@ mac_font_shape (CTFontRef font, CFStringRef string,
{
struct mac_glyph_layout *gl;
CGPoint position;
CGFloat max_x;
if (!RIGHT_TO_LEFT_P)
gl = glbuf + range.location;
@ -3788,12 +3789,13 @@ mac_font_shape (CTFontRef font, CFStringRef string,
CTRunGetGlyphs (ctrun, range, &gl->glyph_id);
CTRunGetPositions (ctrun, range, &position);
max_x = position.x + CTRunGetTypographicBounds (ctrun, range,
NULL, NULL, NULL);
max_x = max (max_x, total_advance);
gl->advance_delta = position.x - total_advance;
gl->baseline_delta = position.y;
gl->advance = (gl->advance_delta
+ CTRunGetTypographicBounds (ctrun, range,
NULL, NULL, NULL));
total_advance += gl->advance;
gl->advance = max_x - total_advance;
total_advance = max_x;
}
if (RIGHT_TO_LEFT_P)