emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Faces applies to new frames


From: Chong Yidong
Subject: Re: Faces applies to new frames
Date: Thu, 26 Jun 2008 22:43:12 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux)

Stefan Monnier <address@hidden> writes:

>> AFAICT, the problem is that the default face is controlled by the `font'
>> frame parameter, but this is not saved to default-frame-alist by
>> internal-set-lisp-face-attribute.  In comparison, the foreground-color
>
> I'm not convinced this is the root of the problem.  For one, by default
> there is no `font' parameter in default-frame-alist, so as long as we
> leave it that way, it should not affect face settings.  The code in
> face-set-after-frame-default should apply the defface-spec to every
> new frame, so we shouldn't need any entry in default-frame-alist for it
> to apply to new frames.  The face-set-after-frame-default used to skip
> `default', so that was an important reason for the bug#47.  I've fixed
> this part, but there are other weird things going on (I have some other
> weird problems here where X resources are obeyed even after I remove
> the calls to `make-face-x-resource-internal').

Maybe there's more than one bug here.  When set-face-attribute is called
with a nil FRAME argument, that changes the face for all frames, and
this is done via frame parameters and not by changing the defface spec.
I don't think face-set-after-frame-default is even relevant to this
case.

>From looking inside internal-set-lisp-face-attribute, it seems that the
face for future frames is changed by changing the frame parameters
`foreground', `background', etc.  The `font' parameter is changed for
each existing frame (xfaces.c:3411), but nothing is saved in
default-frame-alist.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]