[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#8454: deftheme, :inherit & overriding existing values
From: |
Dirk-Jan C . Binnema |
Subject: |
bug#8454: deftheme, :inherit & overriding existing values |
Date: |
Mon, 09 May 2011 23:41:34 +0300 |
User-agent: |
Wanderlust/2.15.9 (Almost Unreal) Emacs/24.0 Mule/6.0 (HANACHIRUSATO) |
Hi,
>>>>> On Sun, 08 May 2011 16:14:53 -0400, Chong Yidong ("CYD") wrote:
CYD> Chong Yidong <cyd@stupidchicken.com> writes:
>> I'm afraid both bug reports are too vague for me to figure out exactly
>> what is supposed to be going wrong. Could someone provide a precise,
>> step-by-step recipe for reproducing the problem?
Sorry about the 'vagueness' - but glad you found it out anyhow.
CYD> OK, I found a bug in the case where defface is called after loading a
CYD> theme with settings for that face. The defface settings were not being
CYD> applied; I've checked a fix into the trunk. However, I'm not sure this
CYD> is the issue you are talking about, since this bug was not specific to
CYD> the :inherit property. Could you check if your problem is fixed?
No, it does solve the problem, but I guess below confirms my suspicion..
CYD> One possible source of confusion, which may apply to Dirk-Jan's report,
CYD> is that :inherit only tells Emacs to consult the parent face if a face
CYD> attribute is unspecified. If the attribute is specified, it overrides
CYD> the inheritance. So if your Custom theme want to "cancel out", say, any
CYD> existing foreground attribute setting, you need something like
CYD> '(froob ((t (:foreground unspecified :inherit parent-face))))
Ok, yes that is what happens. I guess this could work, but in practice it
makes :inherit rather suboptimal -- imagine switching from one theme to
another, you'd have to explicitly cancel out every attribute the other theme
may have set.
Best wishes,
Dirk.
--
Dirk-Jan C. Binnema Helsinki, Finland
e:djcb@djcbsoftware.nl w:www.djcbsoftware.nl
pgp: D09C E664 897D 7D39 5047 A178 E96A C7A1 017D DA3C