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,