[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] emacs/lisp menu-bar.el
From: |
Chong Yidong |
Subject: |
[Emacs-diffs] emacs/lisp menu-bar.el |
Date: |
Fri, 27 Feb 2009 00:04:59 +0000 |
CVSROOT: /sources/emacs
Module name: emacs
Changes by: Chong Yidong <cyd> 09/02/27 00:04:59
Modified files:
lisp : menu-bar.el
Log message:
(menu-set-font): Assign the same font object to all frames (Bug#2476).
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/menu-bar.el?cvsroot=emacs&r1=1.350&r2=1.351
Patches:
Index: menu-bar.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/menu-bar.el,v
retrieving revision 1.350
retrieving revision 1.351
diff -u -b -r1.350 -r1.351
--- menu-bar.el 14 Jan 2009 23:11:12 -0000 1.350
+++ menu-bar.el 27 Feb 2009 00:04:59 -0000 1.351
@@ -637,7 +637,22 @@
(mouse-select-font)))
spec)
(when font
- (set-face-attribute 'default nil :font 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)
+ (let ((font-object (face-attribute 'default :font)))
+ (dolist (f (frame-list))
+ (and (not (eq f (selected-frame)))
+ (display-graphic-p f)
+ (set-face-attribute 'default f :font font-object)))
+ (set-face-attribute 'default t :font font-object))
(setq spec (list (list t (face-attr-construct 'default))))
(put 'default 'customized-face spec)
(custom-push-theme 'theme-face 'default 'user 'set spec)
- [Emacs-diffs] emacs/lisp menu-bar.el,
Chong Yidong <=