summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/faces.el10
1 files changed, 10 insertions, 0 deletions
diff --git a/lisp/faces.el b/lisp/faces.el
index 5ae1c65a4da..c69339e2fdc 100644
--- a/lisp/faces.el
+++ b/lisp/faces.el
@@ -2200,8 +2200,13 @@ the X resource \"reverseVideo\" is present, handle that."
border-color cursor-color mouse-color
visibility scroll-bar-foreground
scroll-bar-background))
+ (delayed-font nil)
frame success)
(dolist (param delayed-params)
+ ;; Save the font used here. Once the frame is created, set the
+ ;; `font-parameter' frame parameter.
+ (when (and (eq param 'font) (assq 'font parameters))
+ (setq delayed-font (cdr (assq 'font parameters))))
(setq params (assq-delete-all param params)))
(setq frame (x-create-frame `((visibility . nil) . ,params)))
(unwind-protect
@@ -2212,6 +2217,11 @@ the X resource \"reverseVideo\" is present, handle that."
(x-handle-reverse-video frame parameters)
(frame-set-background-mode frame t)
(face-set-after-frame-default frame parameters)
+ ;; The code above will not set the `font-parameter' frame
+ ;; property, which is used by dynamic-setting.el to respect
+ ;; fonts specified by the user via frame parameters (as
+ ;; opposed to face attributes). Set the parameter manually.
+ (set-frame-parameter frame 'font-parameter delayed-font)
;; Mark frame as 'was-invisible' when it was created as
;; invisible or iconified and PARAMETERS contains either a
;; width or height specification. This should be sufficient