summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2008-06-19 01:57:19 +0000
committerStefan Monnier <monnier@iro.umontreal.ca>2008-06-19 01:57:19 +0000
commit27129af9d775855efb529d63d2d5c62af2699afe (patch)
tree74e230d850decbf44a9c013e9d6fb30e45ff9b65
parentd26424c5eb84c4bd153a375052fdc96223e0c46e (diff)
downloademacs-27129af9d775855efb529d63d2d5c62af2699afe.tar.gz
* 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.
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/faces.el3
-rw-r--r--src/ChangeLog10
-rw-r--r--src/w32fns.c8
-rw-r--r--src/xfns.c9
5 files changed, 32 insertions, 3 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 88debfeb812..90b9b297b55 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
+2008-06-19 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * faces.el (face-set-after-frame-default): Re-apply explicit `font'
+ frame parameters after setting up the `default' face.
+
2008-06-18 Stefan Monnier <monnier@iro.umontreal.ca>
* faces.el (face-set-after-frame-default): Don't exclude `default'.
diff --git a/lisp/faces.el b/lisp/faces.el
index 251bacc5610..643b50a1316 100644
--- a/lisp/faces.el
+++ b/lisp/faces.el
@@ -703,7 +703,7 @@ like an underlying face would be, with higher priority than underlying faces."
(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 @@ Initialize colors of certain faces from frame parameters."
;; 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 --git a/src/ChangeLog b/src/ChangeLog
index 60cff399cd7..6a920f22f9a 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,9 @@
+2008-06-19 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * 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 <handa@m17n.org>
* font.c (font_parse_xlfd): Fix previous change.
@@ -24,9 +30,9 @@
2008-06-18 Jason Rumney <jasonr@gnu.org>
- * w32font.c (w32font_list, w32font_match): Add logging.
+ * w32font.c (w32font_list, w32font_match): Add logging.
- * w32uniscribe (uniscribe_list, uniscribe_match): Add logging.
+ * w32uniscribe (uniscribe_list, uniscribe_match): Add logging.
2008-06-17 Chong Yidong <cyd@stupidchicken.com>
diff --git a/src/w32fns.c b/src/w32fns.c
index c31ee5be04d..34897314567 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -206,6 +206,7 @@ Lisp_Object Qnone;
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 @@ x_default_font_parameter (f, parms)
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 @@ syms_of_w32fns ()
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 --git a/src/xfns.c b/src/xfns.c
index 57b14d3f9d2..58b03691e2f 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -204,6 +204,7 @@ Lisp_Object Qnone;
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 @@ x_default_font_parameter (f, parms)
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 @@ syms_of_xfns ()
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. */