Mercurial > emacs
changeset 89707:63ecd4967d24
(x_produce_glyphs): Call FACE_FOR_CHAR with POS and
OBJECT args for composition too.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Thu, 15 Jan 2004 06:57:02 +0000 |
parents | 1c9ca166e872 |
children | b66b529d5f33 |
files | src/xdisp.c |
diffstat | 1 files changed, 5 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/xdisp.c Thu Jan 15 02:43:15 2004 +0000 +++ b/src/xdisp.c Thu Jan 15 06:57:02 2004 +0000 @@ -18152,6 +18152,7 @@ struct font_info *font_info; int boff; /* baseline offset */ struct composition *cmp = composition_table[it->cmp_id]; + int pos; /* Maybe translate single-byte characters to multibyte. */ it->char_to_display = it->c; @@ -18162,7 +18163,9 @@ } /* Get face and font to use. Encode IT->char_to_display. */ - it->face_id = FACE_FOR_CHAR (it->f, face, it->char_to_display, -1, Qnil); + pos = STRINGP (it->string) ? IT_STRING_CHARPOS (*it) : IT_CHARPOS (*it); + it->face_id = FACE_FOR_CHAR (it->f, face, it->char_to_display, + pos, it->string); face = FACE_FROM_ID (it->f, it->face_id); get_char_face_and_encoding (it->f, it->char_to_display, it->face_id, &char2b, it->multibyte_p, 0); @@ -18250,7 +18253,7 @@ { int left, right, btm, top; int ch = COMPOSITION_GLYPH (cmp, i); - int face_id = FACE_FOR_CHAR (it->f, face, ch, -1, Qnil); + int face_id = FACE_FOR_CHAR (it->f, face, ch, pos, it->string); face = FACE_FROM_ID (it->f, face_id); get_char_face_and_encoding (it->f, ch, face->id,