GNU bug report logs - #8454
24.0; Emacs does not apply additional custom faces from theme

Previous Next

Package: emacs;

Reported by: Christoph Scholtes <cschol2112 <at> googlemail.com>

Date: Sat, 9 Apr 2011 03:52:02 UTC

Severity: normal

Merged with 10630

Found in versions 24.0, 24.0.92

Done: Chong Yidong <cyd <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Dirk-Jan C. Binnema <djcb <at> djcbsoftware.nl>
To: Chong Yidong <cyd <at> stupidchicken.com>
Cc: Christoph Scholtes <cschol2112 <at> googlemail.com>, 8454 <at> debbugs.gnu.org
Subject: bug#8454: deftheme, :inherit & overriding existing values
Date: Mon, 09 May 2011 23:41:34 +0300
Hi,

>>>>> On Sun, 08 May 2011 16:14:53 -0400, Chong Yidong ("CYD") wrote:

  CYD> Chong Yidong <cyd <at> 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 <at> djcbsoftware.nl           w:www.djcbsoftware.nl
pgp: D09C E664 897D 7D39 5047 A178 E96A C7A1 017D DA3C




This bug report was last modified 12 years and 239 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.