diff options
| author | Chong Yidong | 2006-10-05 17:33:41 +0000 |
|---|---|---|
| committer | Chong Yidong | 2006-10-05 17:33:41 +0000 |
| commit | 26c34ec2e7555f88ce38a942e0b5f61e7a118552 (patch) | |
| tree | 45fa920bed56c84b1e1c69a0aee0f9ca730c0d85 /src | |
| parent | dde5dcd2fdd03e13b320a028a9726441d4cbc0be (diff) | |
| download | emacs-26c34ec2e7555f88ce38a942e0b5f61e7a118552.tar.gz emacs-26c34ec2e7555f88ce38a942e0b5f61e7a118552.zip | |
* frame.c (Qinhibit_face_set_after_frame_default): New var.
(syms_of_frame): Initialize it.
(x_set_frame_parameters): Avoid resetting :font attributes to the
new-frame defaults.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 7 | ||||
| -rw-r--r-- | src/frame.c | 15 |
2 files changed, 22 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index f64020ca34d..ba72e990112 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,10 @@ | |||
| 1 | 2006-10-05 Chong Yidong <cyd@stupidchicken.com> | ||
| 2 | |||
| 3 | * frame.c (Qinhibit_face_set_after_frame_default): New var. | ||
| 4 | (syms_of_frame): Initialize it. | ||
| 5 | (x_set_frame_parameters): Avoid resetting :font attributes to the | ||
| 6 | new-frame defaults. | ||
| 7 | |||
| 1 | 2006-10-03 Stefan Monnier <monnier@iro.umontreal.ca> | 8 | 2006-10-03 Stefan Monnier <monnier@iro.umontreal.ca> |
| 2 | 9 | ||
| 3 | * lisp.h (clear_regexp_cache): Declare. | 10 | * lisp.h (clear_regexp_cache): Declare. |
diff --git a/src/frame.c b/src/frame.c index 82a016be69e..0b835ffd3b9 100644 --- a/src/frame.c +++ b/src/frame.c | |||
| @@ -109,6 +109,7 @@ Lisp_Object Qtty_color_mode; | |||
| 109 | 109 | ||
| 110 | Lisp_Object Qfullscreen, Qfullwidth, Qfullheight, Qfullboth; | 110 | Lisp_Object Qfullscreen, Qfullwidth, Qfullheight, Qfullboth; |
| 111 | 111 | ||
| 112 | Lisp_Object Qinhibit_face_set_after_frame_default; | ||
| 112 | Lisp_Object Qface_set_after_frame_default; | 113 | Lisp_Object Qface_set_after_frame_default; |
| 113 | 114 | ||
| 114 | 115 | ||
| @@ -2729,12 +2730,20 @@ x_set_frame_parameters (f, alist) | |||
| 2729 | || EQ (prop, Qfullscreen)) | 2730 | || EQ (prop, Qfullscreen)) |
| 2730 | { | 2731 | { |
| 2731 | register Lisp_Object param_index, old_value; | 2732 | register Lisp_Object param_index, old_value; |
| 2733 | int count = SPECPDL_INDEX (); | ||
| 2732 | 2734 | ||
| 2733 | old_value = get_frame_param (f, prop); | 2735 | old_value = get_frame_param (f, prop); |
| 2734 | fullscreen_is_being_set |= EQ (prop, Qfullscreen); | 2736 | fullscreen_is_being_set |= EQ (prop, Qfullscreen); |
| 2735 | 2737 | ||
| 2736 | if (NILP (Fequal (val, old_value))) | 2738 | if (NILP (Fequal (val, old_value))) |
| 2737 | { | 2739 | { |
| 2740 | /* For :font attributes, the frame_parm_handler | ||
| 2741 | x_set_font calls `face-set-after-frame-default'. | ||
| 2742 | Unless we bind inhibit-face-set-after-frame-default | ||
| 2743 | here, this would reset the :font attribute that we | ||
| 2744 | just applied to the default value for new faces. */ | ||
| 2745 | specbind (Qinhibit_face_set_after_frame_default, Qt); | ||
| 2746 | |||
| 2738 | store_frame_param (f, prop, val); | 2747 | store_frame_param (f, prop, val); |
| 2739 | 2748 | ||
| 2740 | param_index = Fget (prop, Qx_frame_parameter); | 2749 | param_index = Fget (prop, Qx_frame_parameter); |
| @@ -2743,6 +2752,8 @@ x_set_frame_parameters (f, alist) | |||
| 2743 | < sizeof (frame_parms)/sizeof (frame_parms[0])) | 2752 | < sizeof (frame_parms)/sizeof (frame_parms[0])) |
| 2744 | && rif->frame_parm_handlers[XINT (param_index)]) | 2753 | && rif->frame_parm_handlers[XINT (param_index)]) |
| 2745 | (*(rif->frame_parm_handlers[XINT (param_index)])) (f, val, old_value); | 2754 | (*(rif->frame_parm_handlers[XINT (param_index)])) (f, val, old_value); |
| 2755 | |||
| 2756 | unbind_to (count, Qnil); | ||
| 2746 | } | 2757 | } |
| 2747 | } | 2758 | } |
| 2748 | } | 2759 | } |
| @@ -4004,6 +4015,10 @@ syms_of_frame () | |||
| 4004 | Qface_set_after_frame_default = intern ("face-set-after-frame-default"); | 4015 | Qface_set_after_frame_default = intern ("face-set-after-frame-default"); |
| 4005 | staticpro (&Qface_set_after_frame_default); | 4016 | staticpro (&Qface_set_after_frame_default); |
| 4006 | 4017 | ||
| 4018 | Qinhibit_face_set_after_frame_default | ||
| 4019 | = intern ("inhibit-face-set-after-frame-default"); | ||
| 4020 | staticpro (&Qinhibit_face_set_after_frame_default); | ||
| 4021 | |||
| 4007 | Qfullwidth = intern ("fullwidth"); | 4022 | Qfullwidth = intern ("fullwidth"); |
| 4008 | staticpro (&Qfullwidth); | 4023 | staticpro (&Qfullwidth); |
| 4009 | Qfullheight = intern ("fullheight"); | 4024 | Qfullheight = intern ("fullheight"); |