aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChong Yidong2008-07-05 21:16:05 +0000
committerChong Yidong2008-07-05 21:16:05 +0000
commit0421a7a78070479cda40ad44cfd2f1ac6879c640 (patch)
treef12fa84bacec050c0a6ef459a922a16ff7949ca3 /src
parent0a143d3a0fe2198b99418bda030cc46efbfd0e40 (diff)
downloademacs-0421a7a78070479cda40ad44cfd2f1ac6879c640.tar.gz
emacs-0421a7a78070479cda40ad44cfd2f1ac6879c640.zip
(Finternal_merge_in_global_face): Don't realize default face if it
didn't already exist.
Diffstat (limited to 'src')
-rw-r--r--src/xfaces.c34
1 files changed, 19 insertions, 15 deletions
diff --git a/src/xfaces.c b/src/xfaces.c
index 8482608832a..382e1327679 100644
--- a/src/xfaces.c
+++ b/src/xfaces.c
@@ -3971,22 +3971,26 @@ Default face attributes override any local face attributes. */)
3971 struct face *newface, *oldface = FACE_FROM_ID (f, DEFAULT_FACE_ID); 3971 struct face *newface, *oldface = FACE_FROM_ID (f, DEFAULT_FACE_ID);
3972 Lisp_Object attrs[LFACE_VECTOR_SIZE]; 3972 Lisp_Object attrs[LFACE_VECTOR_SIZE];
3973 3973
3974 bcopy (oldface->lface, attrs, sizeof attrs); 3974 /* This can be NULL (e.g., in batch mode). */
3975 merge_face_vectors (f, lvec, attrs, 0); 3975 if (oldface)
3976 newface = realize_face (c, attrs, DEFAULT_FACE_ID);
3977
3978 if ((! UNSPECIFIEDP (gvec[LFACE_FAMILY_INDEX])
3979 || ! UNSPECIFIEDP (gvec[LFACE_FOUNDRY_INDEX])
3980 || ! UNSPECIFIEDP (gvec[LFACE_HEIGHT_INDEX])
3981 || ! UNSPECIFIEDP (gvec[LFACE_WEIGHT_INDEX])
3982 || ! UNSPECIFIEDP (gvec[LFACE_SLANT_INDEX])
3983 || ! UNSPECIFIEDP (gvec[LFACE_SWIDTH_INDEX])
3984 || ! UNSPECIFIEDP (gvec[LFACE_FONT_INDEX]))
3985 && newface->font)
3986 { 3976 {
3987 Lisp_Object name = newface->font->props[FONT_NAME_INDEX]; 3977 bcopy (oldface->lface, attrs, sizeof attrs);
3988 Fmodify_frame_parameters (frame, Fcons (Fcons (Qfont, name), 3978 merge_face_vectors (f, lvec, attrs, 0);
3989 Qnil)); 3979 newface = realize_face (c, attrs, DEFAULT_FACE_ID);
3980
3981 if ((! UNSPECIFIEDP (gvec[LFACE_FAMILY_INDEX])
3982 || ! UNSPECIFIEDP (gvec[LFACE_FOUNDRY_INDEX])
3983 || ! UNSPECIFIEDP (gvec[LFACE_HEIGHT_INDEX])
3984 || ! UNSPECIFIEDP (gvec[LFACE_WEIGHT_INDEX])
3985 || ! UNSPECIFIEDP (gvec[LFACE_SLANT_INDEX])
3986 || ! UNSPECIFIEDP (gvec[LFACE_SWIDTH_INDEX])
3987 || ! UNSPECIFIEDP (gvec[LFACE_FONT_INDEX]))
3988 && newface->font)
3989 {
3990 Lisp_Object name = newface->font->props[FONT_NAME_INDEX];
3991 Fmodify_frame_parameters (frame, Fcons (Fcons (Qfont, name),
3992 Qnil));
3993 }
3990 } 3994 }
3991 } 3995 }
3992 3996