diff src/w32fns.c @ 96079:efbaf6995245

* 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.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Thu, 19 Jun 2008 01:57:19 +0000
parents 76261fd18708
children 0623378cdbca
line wrap: on
line diff
--- 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.  */