Mercurial > hg > xemacs-beta
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; |