Mercurial > emacs
comparison src/xdisp.c @ 91140:6ab6b7928830
(handle_composition_prop): Adjusted for the change of
lispy gstring. Call a function for auto-composition with the
third arg it->window.
(fill_composite_glyph_string): Adjusted for the change of lispy
string.
(x_produce_glyphs): Adjusted for the change of
font_prepare_compositionl.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Sat, 01 Dec 2007 02:41:05 +0000 |
parents | 880960b70474 |
children | 5e49a450f62d |
comparison
equal
deleted
inserted
replaced
91139:3b9ed57b1424 | 91140:6ab6b7928830 |
---|---|
4629 { | 4629 { |
4630 EMACS_INT pos_byte = IT_BYTEPOS (*it); | 4630 EMACS_INT pos_byte = IT_BYTEPOS (*it); |
4631 | 4631 |
4632 it->c = FETCH_CHAR (pos_byte); | 4632 it->c = FETCH_CHAR (pos_byte); |
4633 } | 4633 } |
4634 args[3] = font_at (it->c, this_pos, face, it->w, it->string); | 4634 args[3] = it->window; |
4635 } | 4635 } |
4636 else | 4636 else |
4637 #endif /* USE_FONT_BACKEND */ | 4637 #endif /* USE_FONT_BACKEND */ |
4638 args[3] = Qnil; | 4638 args[3] = Qnil; |
4639 safe_call (4, args); | 4639 safe_call (4, args); |
4732 { | 4732 { |
4733 Lisp_Object lgstring = AREF (XHASH_TABLE (composition_hash_table) | 4733 Lisp_Object lgstring = AREF (XHASH_TABLE (composition_hash_table) |
4734 ->key_and_value, | 4734 ->key_and_value, |
4735 cmp->hash_index * 2); | 4735 cmp->hash_index * 2); |
4736 | 4736 |
4737 it->c = XINT (LGLYPH_CHAR (LGSTRING_GLYPH (lgstring, 0))); | 4737 it->c = LGLYPH_CHAR (LGSTRING_GLYPH (lgstring, 0)); |
4738 } | 4738 } |
4739 else | 4739 else |
4740 #endif /* USE_FONT_BACKEND */ | 4740 #endif /* USE_FONT_BACKEND */ |
4741 { | 4741 { |
4742 int i; | 4742 int i; |
19303 for (i = 0, s->nchars = 0; i < s->cmp->glyph_len; i++, s->nchars++) | 19303 for (i = 0, s->nchars = 0; i < s->cmp->glyph_len; i++, s->nchars++) |
19304 { | 19304 { |
19305 Lisp_Object g = LGSTRING_GLYPH (gstring, i); | 19305 Lisp_Object g = LGSTRING_GLYPH (gstring, i); |
19306 unsigned code; | 19306 unsigned code; |
19307 XChar2b * store_pos; | 19307 XChar2b * store_pos; |
19308 if (NILP (LGLYPH_FROM (g))) | 19308 if (NILP (g)) |
19309 break; | 19309 break; |
19310 code = XUINT (LGLYPH_CODE (g)); | 19310 code = LGLYPH_CODE (g); |
19311 store_pos = s->char2b + i; | 19311 store_pos = s->char2b + i; |
19312 STORE_XCHAR2B (store_pos, code >> 8, code & 0xFF); | 19312 STORE_XCHAR2B (store_pos, code >> 8, code & 0xFF); |
19313 } | 19313 } |
19314 s->width = s->cmp->pixel_width; | 19314 s->width = s->cmp->pixel_width; |
19315 } | 19315 } |
21107 | 21107 |
21108 #ifdef USE_FONT_BACKEND | 21108 #ifdef USE_FONT_BACKEND |
21109 if (cmp->method == COMPOSITION_WITH_GLYPH_STRING) | 21109 if (cmp->method == COMPOSITION_WITH_GLYPH_STRING) |
21110 { | 21110 { |
21111 if (! cmp->font || cmp->font != font) | 21111 if (! cmp->font || cmp->font != font) |
21112 font_prepare_composition (cmp); | 21112 font_prepare_composition (cmp, it->f); |
21113 } | 21113 } |
21114 else | 21114 else |
21115 #endif /* USE_FONT_BACKEND */ | 21115 #endif /* USE_FONT_BACKEND */ |
21116 /* If we have not yet calculated pixel size data of glyphs of | 21116 /* If we have not yet calculated pixel size data of glyphs of |
21117 the composition for the current face font, calculate them | 21117 the composition for the current face font, calculate them |