emacs-devel
[Top][All Lists]
Advanced

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

Re: Face initialization


From: Stefan Monnier
Subject: Re: Face initialization
Date: Sun, 06 Jul 2008 21:56:52 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux)

>>> After staring at face-set-after-frame-default for a while, I think it
>>> can be simplified somewhat.  If we only set frame parameters based on
>>> the parameter list explicitly passed to `make-frame', it shouldn't be
>>> necessary to mess around with the default face in the beginning of the
>>> function.
>> Interesting: could you explain why you think so?
> I think on reason for the stuff in the beginning was for the following
> check:

> !          (default-value (face-attribute face attr t)))
> ....
> !     (if (eq default-value 'unspecified)
> !         ;; The face spec does not specify a new-frame value for
> !         ;; this attribute.  Check if the existing frame parameter
> !         ;; specifies it.
> !         (if value
> !             (push (list face frame attr value) apply-params))
> !       ;; The face spec specifies a value for this attribute, to be
> !       ;; applied to the face on all new frames.
> !       (push (list face frame attr default-value) apply-params))))

> If we only set the frame parameters explicitly specified for that frame,
> this is not required.  I think all the other information is already
> present in the face spec.

Oh, I see I misunderstood what you were saying.  Yes, maybe you're right
on this one.

>>> Also, the call to make-face-x-resource-internal seems to be
>>> unnecessary.
>> Why?

> The X resource settings are already stored in the `theme-face' property
> of the default face, so face-spec-recalc applies it (now that it is
> called for the default face).

Oh, I didn't know about that.  Do you happen to know the place in the
source code where that `theme-face' is set?  [I'm trying to track down
a problem where X resources take too much precedence and maybe this
will help me figure it out]


        Stefan




reply via email to

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