From: Dirk-Jan C. Binnema <djcb@djcbsoftware.nl>
To: Christoph Scholtes <cschol2112@googlemail.com>
Cc: 8454@debbugs.gnu.org, Chong Yidong <cyd@stupidchicken.com>
Subject: bug#8454: deftheme, :inherit & overriding existing values
Date: Fri, 13 May 2011 07:50:05 +0300 [thread overview]
Message-ID: <20110513045005.D91E339C792@djcbsoftware.nl> (raw)
In-Reply-To: <4DC8AE81.5070704@gmail.com>
Hi,
>>>>> On Mon, 09 May 2011 21:18:25 -0600, Christoph Scholtes ("CS") wrote:
CS> On 5/8/2011 2:14 PM, Chong Yidong wrote:
>> OK, I found a bug in the case where defface is called after loading a
>> theme with settings for that face. The defface settings were not being
>> applied; I've checked a fix into the trunk. However, I'm not sure this
>> is the issue you are talking about, since this bug was not specific to
>> the :inherit property. Could you check if your problem is fixed?
>>
>> One possible source of confusion, which may apply to Dirk-Jan's report,
>> is that :inherit only tells Emacs to consult the parent face if a face
>> attribute is unspecified. If the attribute is specified, it overrides
>> the inheritance. So if your Custom theme want to "cancel out", say, any
>> existing foreground attribute setting, you need something like
>>
>> '(froob ((t (:foreground unspecified :inherit parent-face))))
CS> This did not fix it for me.
CS> I think Dirk-Jan and I have the same issue, though, which is the
CS> behavior of :inherit.
Yes -- in fact, before this change, the theme would look as expected if I
loaded it before - say - Wanderlust. However, with this change, that does not
work either anymore.
CS> One example from my custom theme:
CS> '(erc-default-face ((t (:inherit default))))
CS> This is supposed to inherit from
CS> '(default ((t (:background "#3f3f3f" :foreground "#dcdccc"))))
CS> but it does not work.
CS> This is probably related to what you describe above, but I don't
CS> really understand it. foregound in erc-default-face is unspecified,
CS> right? Should the inherit get the attributes from default or not?
CS> I figured out a way to make my custom theme work, though. Loading it
CS> through customize does not work, but if I open the theme file and eval
CS> the buffer, it works and erc shows the my custom faces. Maybe this
CS> helps to troubleshoot the problem?
Yes, indeed, that is what I do too now:
(defun zenburn()
(interactive)
(load-theme 'zenburn)
(load-library "~/.emacs.d/elisp/themes/zenburn-theme.el"))
In general, it might make sense to first go back to 'factory settings' before
changing the theme, as it's quite unlikely that theme2 always overrides
everything from theme1 -- e.g. zenburn redefines hundreds of faces.
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
prev parent reply other threads:[~2011-05-13 4:50 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20110507091706.DC97939C792@djcbsoftware.nl>
[not found] ` <4DC54D3D.7090409@gmail.com>
2011-05-08 19:19 ` bug#8454: deftheme, :inherit & overriding existing values Chong Yidong
2011-05-08 20:14 ` Chong Yidong
2011-05-09 20:41 ` Dirk-Jan C. Binnema
2011-05-10 3:18 ` Christoph Scholtes
2011-05-13 4:50 ` Dirk-Jan C. Binnema [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110513045005.D91E339C792@djcbsoftware.nl \
--to=djcb@djcbsoftware.nl \
--cc=8454@debbugs.gnu.org \
--cc=cschol2112@googlemail.com \
--cc=cyd@stupidchicken.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).