Commit 648ab841 authored by Kenichi Handa's avatar Kenichi Handa

(fill_gstring_glyph_string): Adjusted for the change of

<struct glyph>.u.cmp.to.  Check if the glyph belongs to the same
composition.
(append_composite_glyph): Adjusted for the change of
<strcut glyph>.u.cmp.to.
parent 8ea6fa80
...@@ -19688,15 +19688,16 @@ fill_gstring_glyph_string (s, face_id, start, end, overlaps) ...@@ -19688,15 +19688,16 @@ fill_gstring_glyph_string (s, face_id, start, end, overlaps)
last = s->row->glyphs[s->area] + end; last = s->row->glyphs[s->area] + end;
s->cmp_id = glyph->u.cmp.id; s->cmp_id = glyph->u.cmp.id;
s->cmp_from = glyph->u.cmp.from; s->cmp_from = glyph->u.cmp.from;
s->cmp_to = glyph->u.cmp.to; s->cmp_to = glyph->u.cmp.to + 1;
s->face = FACE_FROM_ID (s->f, face_id); s->face = FACE_FROM_ID (s->f, face_id);
lgstring = composition_gstring_from_id (s->cmp_id); lgstring = composition_gstring_from_id (s->cmp_id);
s->font = XFONT_OBJECT (LGSTRING_FONT (lgstring)); s->font = XFONT_OBJECT (LGSTRING_FONT (lgstring));
glyph++; glyph++;
while (glyph < last while (glyph < last
&& glyph->u.cmp.automatic && glyph->u.cmp.automatic
&& glyph->u.cmp.id == s->cmp_id) && glyph->u.cmp.id == s->cmp_id
s->cmp_to = (glyph++)->u.cmp.to; && s->cmp_to == glyph->u.cmp.from)
s->cmp_to = (glyph++)->u.cmp.to + 1;
for (i = s->cmp_from; i < s->cmp_to; i++) for (i = s->cmp_from; i < s->cmp_to; i++)
{ {
...@@ -19905,7 +19906,7 @@ x_get_glyph_overhangs (glyph, f, left, right) ...@@ -19905,7 +19906,7 @@ x_get_glyph_overhangs (glyph, f, left, right)
struct font_metrics metrics; struct font_metrics metrics;
composition_gstring_width (gstring, glyph->u.cmp.from, composition_gstring_width (gstring, glyph->u.cmp.from,
glyph->u.cmp.to, &metrics); glyph->u.cmp.to + 1, &metrics);
if (metrics.rbearing > metrics.width) if (metrics.rbearing > metrics.width)
*right = metrics.rbearing; *right = metrics.rbearing;
if (metrics.lbearing < 0) if (metrics.lbearing < 0)
...@@ -20653,7 +20654,7 @@ append_composite_glyph (it) ...@@ -20653,7 +20654,7 @@ append_composite_glyph (it)
glyph->u.cmp.automatic = 1; glyph->u.cmp.automatic = 1;
glyph->u.cmp.id = it->cmp_it.id; glyph->u.cmp.id = it->cmp_it.id;
glyph->u.cmp.from = it->cmp_it.from; glyph->u.cmp.from = it->cmp_it.from;
glyph->u.cmp.to = it->cmp_it.to; glyph->u.cmp.to = it->cmp_it.to - 1;
} }
glyph->avoid_cursor_p = it->avoid_cursor_p; glyph->avoid_cursor_p = it->avoid_cursor_p;
glyph->multibyte_p = it->multibyte_p; glyph->multibyte_p = it->multibyte_p;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment