aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChong Yidong2006-10-05 17:33:41 +0000
committerChong Yidong2006-10-05 17:33:41 +0000
commit26c34ec2e7555f88ce38a942e0b5f61e7a118552 (patch)
tree45fa920bed56c84b1e1c69a0aee0f9ca730c0d85 /src
parentdde5dcd2fdd03e13b320a028a9726441d4cbc0be (diff)
downloademacs-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/ChangeLog7
-rw-r--r--src/frame.c15
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 @@
12006-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
12006-10-03 Stefan Monnier <monnier@iro.umontreal.ca> 82006-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
110Lisp_Object Qfullscreen, Qfullwidth, Qfullheight, Qfullboth; 110Lisp_Object Qfullscreen, Qfullwidth, Qfullheight, Qfullboth;
111 111
112Lisp_Object Qinhibit_face_set_after_frame_default;
112Lisp_Object Qface_set_after_frame_default; 113Lisp_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");