[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/xfaces.c
From: |
Chong Yidong |
Subject: |
[Emacs-diffs] Changes to emacs/src/xfaces.c |
Date: |
Sun, 20 Nov 2005 17:35:50 -0500 |
Index: emacs/src/xfaces.c
diff -c emacs/src/xfaces.c:1.341 emacs/src/xfaces.c:1.342
*** emacs/src/xfaces.c:1.341 Sun Nov 20 15:22:31 2005
--- emacs/src/xfaces.c Sun Nov 20 22:35:48 2005
***************
*** 3576,3583 ****
{
if (i == LFACE_HEIGHT_INDEX && !INTEGERP (from[i]))
to[i] = merge_face_heights (from[i], to[i], to[i]);
- else if (IGNORE_DEFFACE_P (from[i]))
- to[i] = Qunspecified;
else
to[i] = from[i];
}
--- 3576,3581 ----
***************
*** 4056,4063 ****
if (EQ (frame, Qt))
{
lface = lface_from_face_name (NULL, face, 1);
if (UNSPECIFIEDP (value))
! value = Qignore_defface;
}
else
{
--- 4054,4068 ----
if (EQ (frame, Qt))
{
lface = lface_from_face_name (NULL, face, 1);
+
+ /* When updating face-new-frame-defaults, we put :ignore-defface
+ where the caller wants `unspecified'. This forces the frame
+ defaults to ignore the defface value. Otherwise, the defface
+ will take effect, which is generally not what is intended.
+ The value of that attribute will be inherited from some other
+ face during face merging. See internal_merge_in_global_face. */
if (UNSPECIFIEDP (value))
! value = Qignore_defface;
}
else
{
***************
*** 4969,4975 ****
gvec = XVECTOR (global_lface)->contents;
for (i = 1; i < LFACE_VECTOR_SIZE; ++i)
if (! UNSPECIFIEDP (gvec[i]))
! lvec[i] = gvec[i];
return Qnil;
}
--- 4974,4983 ----
gvec = XVECTOR (global_lface)->contents;
for (i = 1; i < LFACE_VECTOR_SIZE; ++i)
if (! UNSPECIFIEDP (gvec[i]))
! if (IGNORE_DEFFACE_P (gvec[i]))
! lvec[i] = Qunspecified;
! else
! lvec[i] = gvec[i];
return Qnil;
}