comparison src/glyphs.c @ 4426:515b91f904c1

Fix specifier inheritance behavior This patch ensures that no fallback is used if so requested, when the specifier instantiation process involves inheritance (for instance, a face [property] inheriting from another face [property]).
author Didier Verna <didier@xemacs.org>
date Tue, 26 Feb 2008 18:02:34 +0100
parents 8475ff9c49ea
children 8f1ee2d15784
comparison
equal deleted inserted replaced
4425:bfb8a26de3cb 4426:515b91f904c1
3257 displayed in the given domain. */ 3257 displayed in the given domain. */
3258 3258
3259 static Lisp_Object 3259 static Lisp_Object
3260 image_instantiate (Lisp_Object specifier, Lisp_Object UNUSED (matchspec), 3260 image_instantiate (Lisp_Object specifier, Lisp_Object UNUSED (matchspec),
3261 Lisp_Object domain, Lisp_Object instantiator, 3261 Lisp_Object domain, Lisp_Object instantiator,
3262 Lisp_Object depth) 3262 Lisp_Object depth, int no_fallback)
3263 { 3263 {
3264 Lisp_Object glyph = IMAGE_SPECIFIER_ATTACHEE (XIMAGE_SPECIFIER (specifier)); 3264 Lisp_Object glyph = IMAGE_SPECIFIER_ATTACHEE (XIMAGE_SPECIFIER (specifier));
3265 int dest_mask = XIMAGE_SPECIFIER_ALLOWED (specifier); 3265 int dest_mask = XIMAGE_SPECIFIER_ALLOWED (specifier);
3266 int pointerp = dest_mask & image_instance_type_to_mask (IMAGE_POINTER); 3266 int pointerp = dest_mask & image_instance_type_to_mask (IMAGE_POINTER);
3267 3267
3296 && EQ (INSTANTIATOR_TYPE (instantiator), Qinherit)) 3296 && EQ (INSTANTIATOR_TYPE (instantiator), Qinherit))
3297 { 3297 {
3298 assert (XVECTOR_LENGTH (instantiator) == 3); 3298 assert (XVECTOR_LENGTH (instantiator) == 3);
3299 return (FACE_PROPERTY_INSTANCE 3299 return (FACE_PROPERTY_INSTANCE
3300 (Fget_face (XVECTOR_DATA (instantiator)[2]), 3300 (Fget_face (XVECTOR_DATA (instantiator)[2]),
3301 Qbackground_pixmap, domain, 1, depth)); 3301 Qbackground_pixmap, domain, no_fallback, depth));
3302 } 3302 }
3303 else 3303 else
3304 { 3304 {
3305 Lisp_Object instance = Qnil; 3305 Lisp_Object instance = Qnil;
3306 Lisp_Object subtable = Qnil; 3306 Lisp_Object subtable = Qnil;