# HG changeset patch # User Stefan Monnier # Date 1213840639 0 # Node ID efbaf69952454b0fbb89cb4e6a6d6e960ed4229b # Parent 00430d3968f275123159f707db89e450ac5d8bff * w32fns.c, xfns.c (Qfont_param): New var. (syms_of_w32fns): Initialize it. (x_default_font_parameter): Record explicit `font' into `font-parameter'. * faces.el (face-set-after-frame-default): Re-apply explicit `font' frame parameters after setting up the `default' face. diff -r 00430d3968f2 -r efbaf6995245 lisp/ChangeLog --- a/lisp/ChangeLog Thu Jun 19 00:43:34 2008 +0000 +++ b/lisp/ChangeLog Thu Jun 19 01:57:19 2008 +0000 @@ -1,3 +1,8 @@ +2008-06-19 Stefan Monnier + + * faces.el (face-set-after-frame-default): Re-apply explicit `font' + frame parameters after setting up the `default' face. + 2008-06-18 Stefan Monnier * faces.el (face-set-after-frame-default): Don't exclude `default'. diff -r 00430d3968f2 -r efbaf6995245 lisp/faces.el --- a/lisp/faces.el Thu Jun 19 00:43:34 2008 +0000 +++ b/lisp/faces.el Thu Jun 19 01:57:19 2008 +0000 @@ -703,7 +703,7 @@ (put (or (get face 'face-alias) face) 'face-modified t)) (while args ;; Don't recursively set the attributes from the frame's font param - ;; when we update the frame's font param fro the attributes. + ;; when we update the frame's font param from the attributes. (let ((inhibit-face-set-after-frame-default t)) (if (and (eq (car args) :family) (stringp (cadr args)) @@ -2018,6 +2018,7 @@ ;; Find attributes that should be initialized from frame parameters. (let ((face-params '((foreground-color default :foreground) (background-color default :background) + (font-parameter default :font) (border-color border :background) (cursor-color cursor :background) (scroll-bar-foreground scroll-bar :foreground) diff -r 00430d3968f2 -r efbaf6995245 src/ChangeLog --- a/src/ChangeLog Thu Jun 19 00:43:34 2008 +0000 +++ b/src/ChangeLog Thu Jun 19 01:57:19 2008 +0000 @@ -1,3 +1,9 @@ +2008-06-19 Stefan Monnier + + * w32fns.c, xfns.c (Qfont_param): New var. + (syms_of_w32fns): Initialize it. + (x_default_font_parameter): Record explicit `font' into `font-parameter'. + 2008-06-18 Kenichi Handa * font.c (font_parse_xlfd): Fix previous change. @@ -24,9 +30,9 @@ 2008-06-18 Jason Rumney - * w32font.c (w32font_list, w32font_match): Add logging. - - * w32uniscribe (uniscribe_list, uniscribe_match): Add logging. + * w32font.c (w32font_list, w32font_match): Add logging. + + * w32uniscribe (uniscribe_list, uniscribe_match): Add logging. 2008-06-17 Chong Yidong diff -r 00430d3968f2 -r efbaf6995245 src/w32fns.c --- a/src/w32fns.c Thu Jun 19 00:43:34 2008 +0000 +++ b/src/w32fns.c Thu Jun 19 01:57:19 2008 +0000 @@ -206,6 +206,7 @@ Lisp_Object Qsuppress_icon; Lisp_Object Qundefined_color; Lisp_Object Qcancel_timer; +Lisp_Object Qfont_param; Lisp_Object Qhyper; Lisp_Object Qsuper; Lisp_Object Qmeta; @@ -4295,6 +4296,12 @@ if (NILP (font)) error ("No suitable font was found"); } + else + { + /* Remember the explicit font parameter, so we can re-apply it after + we've applied the `default' face settings. */ + x_set_frame_parameters (f, Fcons (Fcons (Qfont_param, font), Qnil)); + } x_default_parameter (f, parms, Qfont, font, "font", "Font", RES_TYPE_STRING); } @@ -8891,6 +8898,7 @@ DEFSYM (Qctrl, "ctrl"); DEFSYM (Qcontrol, "control"); DEFSYM (Qshift, "shift"); + DEFSYM (Qfont_param, "font-parameter"); /* This is the end of symbol initialization. */ /* Text property `display' should be nonsticky by default. */ diff -r 00430d3968f2 -r efbaf6995245 src/xfns.c --- a/src/xfns.c Thu Jun 19 00:43:34 2008 +0000 +++ b/src/xfns.c Thu Jun 19 01:57:19 2008 +0000 @@ -204,6 +204,7 @@ Lisp_Object Qsuppress_icon; Lisp_Object Qundefined_color; Lisp_Object Qcompound_text, Qcancel_timer; +static Lisp_Object Qfont_param; /* In dispnew.c */ @@ -3087,6 +3088,12 @@ if (NILP (font)) error ("No suitable font was found"); } + else + { + /* Remember the explicit font parameter, so we can re-apply it after + we've applied the `default' face settings. */ + x_set_frame_parameters (f, Fcons (Fcons (Qfont_param, font), Qnil)); + } x_default_parameter (f, parms, Qfont, font, "font", "Font", RES_TYPE_STRING); } @@ -5854,6 +5861,8 @@ staticpro (&Qcompound_text); Qcancel_timer = intern ("cancel-timer"); staticpro (&Qcancel_timer); + Qfont_param = intern ("font-parameter"); + staticpro (&Qfont_param); /* This is the end of symbol initialization. */ /* Text property `display' should be nonsticky by default. */