]> git.eshelyaron.com Git - emacs.git/commitdiff
(Finternal_merge_in_global_face): Save merged attributes for the
authorChong Yidong <cyd@stupidchicken.com>
Tue, 8 Jul 2008 17:27:28 +0000 (17:27 +0000)
committerChong Yidong <cyd@stupidchicken.com>
Tue, 8 Jul 2008 17:27:28 +0000 (17:27 +0000)
default face back into the face vector.

src/xfaces.c

index ed802b03f7c8382e58cff9de5a7e15e5cfafa10c..87a9006ae22e51deed38b47547effeb9730e4f59 100644 (file)
@@ -3966,7 +3966,7 @@ Default face attributes override any local face attributes.  */)
     else if (! UNSPECIFIEDP (gvec[i]))
       lvec[i] = gvec[i];
 
-  /* If the default face was changed, realize it again, and update the
+  /* If the default face was changed, update the face cache and the
      `font' frame parameter.  */
   if (EQ (face, Qdefault))
     {
@@ -3977,9 +3977,12 @@ Default face attributes override any local face attributes.  */)
       /* This can be NULL (e.g., in batch mode).  */
       if (oldface)
        {
+         /* Ensure that the face vector is fully specified by merging
+            the previously-cached vector.  */
          bcopy (oldface->lface, attrs, sizeof attrs);
          merge_face_vectors (f, lvec, attrs, 0);
-         newface = realize_face (c, attrs, DEFAULT_FACE_ID);
+         bcopy (attrs, lvec, sizeof attrs);
+         newface = realize_face (c, lvec, DEFAULT_FACE_ID);
 
          if ((! UNSPECIFIEDP (gvec[LFACE_FAMILY_INDEX])
               || ! UNSPECIFIEDP (gvec[LFACE_FOUNDRY_INDEX])