aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/menu-bar.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/menu-bar.el')
-rw-r--r--lisp/menu-bar.el18
1 files changed, 8 insertions, 10 deletions
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el
index 043e0120fc..5b3b5674f3 100644
--- a/lisp/menu-bar.el
+++ b/lisp/menu-bar.el
@@ -637,16 +637,14 @@ by \"Save Options\" in Custom buffers.")
(mouse-select-font)))
spec)
(when font
- ;; We used to call set-face-attribute with a nil argument here,
- ;; but this does the wrong thing (Bug#2476). The reason is
- ;; subtle: when Emacs looks for a font matching the `font'
- ;; argument, it tries to guess the best matching font by
- ;; examining the other face attributes. The attributes for
- ;; future frames are generally unspecified, so this matching
- ;; process works poorly. What we do instead is assign `font' to
- ;; the selected frame, then use that font object and assign it
- ;; to all other frames (and to future frames).
- (set-face-attribute 'default (selected-frame) :font font)
+ ;; Be careful here: when set-face-attribute is called for the
+ ;; :font attribute, Emacs tries to guess the best matching font
+ ;; by examining the other face attributes (Bug#2476).
+ (set-face-attribute 'default (selected-frame)
+ :width 'normal
+ :weight 'normal
+ :slant 'normal
+ :font font)
(let ((font-object (face-attribute 'default :font)))
(dolist (f (frame-list))
(and (not (eq f (selected-frame)))