[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master bfeda89: * src/macfont.m (mac_font_shape): Make sur
From: |
YAMAMOTO Mitsuharu |
Subject: |
[Emacs-diffs] master bfeda89: * src/macfont.m (mac_font_shape): Make sure that total_advance is increasing. |
Date: |
Mon, 11 Jul 2016 04:37:28 +0000 (UTC) |
branch: master
commit bfeda891a51178dd0032800ea4aef013c62bbe10
Author: YAMAMOTO Mitsuharu <address@hidden>
Commit: YAMAMOTO Mitsuharu <address@hidden>
* src/macfont.m (mac_font_shape): Make sure that total_advance is
increasing.
---
src/macfont.m | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/src/macfont.m b/src/macfont.m
index 4e4daba..c799100 100644
--- a/src/macfont.m
+++ b/src/macfont.m
@@ -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)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master bfeda89: * src/macfont.m (mac_font_shape): Make sure that total_advance is increasing.,
YAMAMOTO Mitsuharu <=