emacs-diffs
[Top][All Lists]
Advanced

[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;
  }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]