Subject: Re: bug#3408: customize-face not working: seems to apply to frame-face

From: Kenichi Handa <[email-masked]>
Date: Thu, 28 May 2009 11:12:54 +0900

In article <[email-masked]>, David Reitter <[email-masked]> writes:

> Emacs -Q
> (set-face-attribute 'default nil
> 		    :height 130
> 		    :family "Lucida Grande")
> ;; switches default face

> (customize-face 'default)
> ;; switch back manually to Monaco

> (make-frame-command)  ;; C-x 5 2
> ;; the new frame is shown in the Lucida face.  Why?

> The same thing works as I would expect in Emacs 22.  I would generally  
> assume that `customize-face' applies to faces in future frames as well.

This behaviour is not limitted to font related attributes.

If the arg FRAME is nil, set-face-attribute changes
attributes on all frames plus the default for new frames

But customize-face changes only the attributes of existing
frames.

(face-attribute 'default :background nil) => "#ffffff"
(face-attribute 'default :background t) => unspecified

(set-face-attribute 'default nil :background "gray")

(face-attribute 'default :background nil) => "gray"
(face-attribute 'default :background t) => "gray"

(customize-face 'default) ;; set :background back to "#ffffff"

(face-attribute 'default :background nil) => "#ffffff"
(face-attribute 'default :background t) => "gray"

---
Kenichi Handa
[email-masked]