diff options
| author | Chong Yidong | 2008-07-05 21:16:05 +0000 |
|---|---|---|
| committer | Chong Yidong | 2008-07-05 21:16:05 +0000 |
| commit | 0421a7a78070479cda40ad44cfd2f1ac6879c640 (patch) | |
| tree | f12fa84bacec050c0a6ef459a922a16ff7949ca3 /src | |
| parent | 0a143d3a0fe2198b99418bda030cc46efbfd0e40 (diff) | |
| download | emacs-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.c | 34 |
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 | ||