comparison src/glyphs.c @ 452:3d3049ae1304 r21-2-41

Import from CVS: tag r21-2-41
author cvs
date Mon, 13 Aug 2007 11:40:21 +0200
parents 98528da0b7fc
children d7a9135ec789
comparison
equal deleted inserted replaced
451:8ad70c5cd5d7 452:3d3049ae1304
3136 } 3136 }
3137 else 3137 else
3138 signal_simple_error_2 ("Wrong domain for image instance", 3138 signal_simple_error_2 ("Wrong domain for image instance",
3139 instantiator, domain); 3139 instantiator, domain);
3140 } 3140 }
3141 /* How ugly !! An image instanciator that uses a kludgy syntax to snarf in
3142 face properties. There's a design flaw here. -- didier */
3141 else if (VECTORP (instantiator) 3143 else if (VECTORP (instantiator)
3142 && EQ (INSTANTIATOR_TYPE (instantiator), Qinherit)) 3144 && EQ (INSTANTIATOR_TYPE (instantiator), Qinherit))
3143 { 3145 {
3144 assert (XVECTOR_LENGTH (instantiator) == 3); 3146 assert (XVECTOR_LENGTH (instantiator) == 3);
3145 return (FACE_PROPERTY_INSTANCE 3147 return (FACE_PROPERTY_INSTANCE
3146 (Fget_face (XVECTOR_DATA (instantiator)[2]), 3148 (Fget_face (XVECTOR_DATA (instantiator)[2]),
3147 Qbackground_pixmap, domain, 0, depth)); 3149 Qbackground_pixmap, domain, 1, depth));
3148 } 3150 }
3149 else 3151 else
3150 { 3152 {
3151 Lisp_Object instance = Qnil; 3153 Lisp_Object instance = Qnil;
3152 Lisp_Object subtable = Qnil; 3154 Lisp_Object subtable = Qnil;
3167 3169
3168 if (pointerp) 3170 if (pointerp)
3169 { 3171 {
3170 pointer_fg = FACE_FOREGROUND (Vpointer_face, domain); 3172 pointer_fg = FACE_FOREGROUND (Vpointer_face, domain);
3171 pointer_bg = FACE_BACKGROUND (Vpointer_face, domain); 3173 pointer_bg = FACE_BACKGROUND (Vpointer_face, domain);
3172 hash_key = list4 (glyph, INSTANTIATOR_TYPE (instantiator), 3174 hash_key = list4 (glyph, INSTANTIATOR_TYPE (instantiator),
3173 pointer_fg, pointer_bg); 3175 pointer_fg, pointer_bg);
3174 } 3176 }
3175 else 3177 else
3176 /* We cannot simply key on the glyph since fallbacks could use 3178 /* We cannot simply key on the glyph since fallbacks could use
3177 the same glyph but have a totally different instantiator 3179 the same glyph but have a totally different instantiator
5167 Dynarr_new (image_instantiator_format_entry); 5169 Dynarr_new (image_instantiator_format_entry);
5168 5170
5169 Vimage_instantiator_format_list = Qnil; 5171 Vimage_instantiator_format_list = Qnil;
5170 staticpro (&Vimage_instantiator_format_list); 5172 staticpro (&Vimage_instantiator_format_list);
5171 5173
5172 dumpstruct (&the_image_instantiator_format_entry_dynarr, &iifed_description); 5174 dump_add_root_struct_ptr (&the_image_instantiator_format_entry_dynarr, &iifed_description);
5173 5175
5174 INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (nothing, "nothing"); 5176 INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (nothing, "nothing");
5175 5177
5176 IIFORMAT_HAS_METHOD (nothing, possible_dest_types); 5178 IIFORMAT_HAS_METHOD (nothing, possible_dest_types);
5177 IIFORMAT_HAS_METHOD (nothing, instantiate); 5179 IIFORMAT_HAS_METHOD (nothing, instantiate);