(merge_face_vectors):
Clear TO's :font attribute if made inconsistent by a font-related attribute in FROM. (merge_face_inheritance): Add function comment.
This commit is contained in:
parent
82a452c856
commit
871882002a
2 changed files with 25 additions and 0 deletions
|
@ -1,3 +1,9 @@
|
|||
2000-08-28 Miles Bader <miles@gnu.org>
|
||||
|
||||
* xfaces.c (merge_face_vectors): Clear TO's :font attribute if
|
||||
made inconsistent by a font-related attribute in FROM.
|
||||
(merge_face_inheritance): Add function comment.
|
||||
|
||||
2000-08-28 Kenichi Handa <handa@etl.go.jp>
|
||||
|
||||
* keyboard.c (read_char_minibuf_menu_prompt): Call read_char with
|
||||
|
|
19
src/xfaces.c
19
src/xfaces.c
|
@ -3150,6 +3150,18 @@ merge_face_vectors (f, from, to, cycle_check)
|
|||
&& !NILP (from[LFACE_INHERIT_INDEX]))
|
||||
merge_face_inheritance (f, from[LFACE_INHERIT_INDEX], to, cycle_check);
|
||||
|
||||
/* If TO specifies a :font attribute, and FROM specifies some
|
||||
font-related attribute, we need to clear TO's :font attribute
|
||||
(because it will be inconsistent with whatever FROM specifies, and
|
||||
FROM takes precedence). */
|
||||
if (!NILP (to[LFACE_FONT_INDEX])
|
||||
&& (!UNSPECIFIEDP (from[LFACE_FAMILY_INDEX])
|
||||
|| !UNSPECIFIEDP (from[LFACE_HEIGHT_INDEX])
|
||||
|| !UNSPECIFIEDP (from[LFACE_WEIGHT_INDEX])
|
||||
|| !UNSPECIFIEDP (from[LFACE_SLANT_INDEX])
|
||||
|| !UNSPECIFIEDP (from[LFACE_SWIDTH_INDEX])))
|
||||
to[LFACE_FONT_INDEX] = Qnil;
|
||||
|
||||
for (i = 1; i < LFACE_VECTOR_SIZE; ++i)
|
||||
if (!UNSPECIFIEDP (from[i]))
|
||||
if (i == LFACE_HEIGHT_INDEX && !INTEGERP (from[i]))
|
||||
|
@ -3187,6 +3199,13 @@ merge_face_vectors (f, from, to, cycle_check)
|
|||
? Qnil \
|
||||
: Fcons ((el), (check)))
|
||||
|
||||
|
||||
/* Merge face attributes from the face on frame F whose name is
|
||||
INHERITS, into the vector of face attributes TO; INHERITS may also be
|
||||
a list of face names, in which case they are applied in order.
|
||||
CYCLE_CHECK is used to detect loops in face inheritance.
|
||||
Returns true if any of the inherited attributes are `font-related'. */
|
||||
|
||||
static void
|
||||
merge_face_inheritance (f, inherit, to, cycle_check)
|
||||
struct frame *f;
|
||||
|
|
Loading…
Add table
Reference in a new issue