diff options
| author | Kenichi Handa | 2009-02-12 05:54:20 +0000 |
|---|---|---|
| committer | Kenichi Handa | 2009-02-12 05:54:20 +0000 |
| commit | 648ab841cc84132db064848c92f0d0b70ec7b532 (patch) | |
| tree | 14107afca21b2367d570288d4748f985fe480ae5 /src | |
| parent | 8ea6fa801ed4788d3f5bc01b8198025587e77871 (diff) | |
| download | emacs-648ab841cc84132db064848c92f0d0b70ec7b532.tar.gz emacs-648ab841cc84132db064848c92f0d0b70ec7b532.zip | |
(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.
Diffstat (limited to 'src')
| -rw-r--r-- | src/xdisp.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/xdisp.c b/src/xdisp.c index 04a91f45b84..518ec9524f5 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -19688,15 +19688,16 @@ fill_gstring_glyph_string (s, face_id, start, end, overlaps) | |||
| 19688 | last = s->row->glyphs[s->area] + end; | 19688 | last = s->row->glyphs[s->area] + end; |
| 19689 | s->cmp_id = glyph->u.cmp.id; | 19689 | s->cmp_id = glyph->u.cmp.id; |
| 19690 | s->cmp_from = glyph->u.cmp.from; | 19690 | s->cmp_from = glyph->u.cmp.from; |
| 19691 | s->cmp_to = glyph->u.cmp.to; | 19691 | s->cmp_to = glyph->u.cmp.to + 1; |
| 19692 | s->face = FACE_FROM_ID (s->f, face_id); | 19692 | s->face = FACE_FROM_ID (s->f, face_id); |
| 19693 | lgstring = composition_gstring_from_id (s->cmp_id); | 19693 | lgstring = composition_gstring_from_id (s->cmp_id); |
| 19694 | s->font = XFONT_OBJECT (LGSTRING_FONT (lgstring)); | 19694 | s->font = XFONT_OBJECT (LGSTRING_FONT (lgstring)); |
| 19695 | glyph++; | 19695 | glyph++; |
| 19696 | while (glyph < last | 19696 | while (glyph < last |
| 19697 | && glyph->u.cmp.automatic | 19697 | && glyph->u.cmp.automatic |
| 19698 | && glyph->u.cmp.id == s->cmp_id) | 19698 | && glyph->u.cmp.id == s->cmp_id |
| 19699 | s->cmp_to = (glyph++)->u.cmp.to; | 19699 | && s->cmp_to == glyph->u.cmp.from) |
| 19700 | s->cmp_to = (glyph++)->u.cmp.to + 1; | ||
| 19700 | 19701 | ||
| 19701 | for (i = s->cmp_from; i < s->cmp_to; i++) | 19702 | for (i = s->cmp_from; i < s->cmp_to; i++) |
| 19702 | { | 19703 | { |
| @@ -19905,7 +19906,7 @@ x_get_glyph_overhangs (glyph, f, left, right) | |||
| 19905 | struct font_metrics metrics; | 19906 | struct font_metrics metrics; |
| 19906 | 19907 | ||
| 19907 | composition_gstring_width (gstring, glyph->u.cmp.from, | 19908 | composition_gstring_width (gstring, glyph->u.cmp.from, |
| 19908 | glyph->u.cmp.to, &metrics); | 19909 | glyph->u.cmp.to + 1, &metrics); |
| 19909 | if (metrics.rbearing > metrics.width) | 19910 | if (metrics.rbearing > metrics.width) |
| 19910 | *right = metrics.rbearing; | 19911 | *right = metrics.rbearing; |
| 19911 | if (metrics.lbearing < 0) | 19912 | if (metrics.lbearing < 0) |
| @@ -20653,7 +20654,7 @@ append_composite_glyph (it) | |||
| 20653 | glyph->u.cmp.automatic = 1; | 20654 | glyph->u.cmp.automatic = 1; |
| 20654 | glyph->u.cmp.id = it->cmp_it.id; | 20655 | glyph->u.cmp.id = it->cmp_it.id; |
| 20655 | glyph->u.cmp.from = it->cmp_it.from; | 20656 | glyph->u.cmp.from = it->cmp_it.from; |
| 20656 | glyph->u.cmp.to = it->cmp_it.to; | 20657 | glyph->u.cmp.to = it->cmp_it.to - 1; |
| 20657 | } | 20658 | } |
| 20658 | glyph->avoid_cursor_p = it->avoid_cursor_p; | 20659 | glyph->avoid_cursor_p = it->avoid_cursor_p; |
| 20659 | glyph->multibyte_p = it->multibyte_p; | 20660 | glyph->multibyte_p = it->multibyte_p; |