Commit 87188200 authored by Miles Bader's avatar Miles Bader
Browse files

(merge_face_vectors):

  Clear TO's :font attribute if made inconsistent by a font-related attribute in FROM.
(merge_face_inheritance):
  Add function comment.
parent 82a452c8
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> 2000-08-28 Kenichi Handa <handa@etl.go.jp>
* keyboard.c (read_char_minibuf_menu_prompt): Call read_char with * keyboard.c (read_char_minibuf_menu_prompt): Call read_char with
......
...@@ -3150,6 +3150,18 @@ merge_face_vectors (f, from, to, cycle_check) ...@@ -3150,6 +3150,18 @@ merge_face_vectors (f, from, to, cycle_check)
&& !NILP (from[LFACE_INHERIT_INDEX])) && !NILP (from[LFACE_INHERIT_INDEX]))
merge_face_inheritance (f, from[LFACE_INHERIT_INDEX], to, cycle_check); 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) for (i = 1; i < LFACE_VECTOR_SIZE; ++i)
if (!UNSPECIFIEDP (from[i])) if (!UNSPECIFIEDP (from[i]))
if (i == LFACE_HEIGHT_INDEX && !INTEGERP (from[i])) if (i == LFACE_HEIGHT_INDEX && !INTEGERP (from[i]))
...@@ -3187,6 +3199,13 @@ merge_face_vectors (f, from, to, cycle_check) ...@@ -3187,6 +3199,13 @@ merge_face_vectors (f, from, to, cycle_check)
? Qnil \ ? Qnil \
: Fcons ((el), (check))) : 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 static void
merge_face_inheritance (f, inherit, to, cycle_check) merge_face_inheritance (f, inherit, to, cycle_check)
struct frame *f; struct frame *f;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment