From: Eli Zaretskii <eliz@gnu.org>
To: Matthias Dahl <matthias.dahl@binary-island.eu>
Cc: gundaetiapo@gmail.com, 16434@debbugs.gnu.org
Subject: bug#16434: bug#16694: bugs #16694/#16378: Patches
Date: Wed, 23 Apr 2014 18:51:37 +0300 [thread overview]
Message-ID: <83zjjc82nq.fsf@gnu.org> (raw)
In-Reply-To: <5349546A.4040500@binary-island.eu>
> Date: Sat, 12 Apr 2014 16:57:46 +0200
> From: Matthias Dahl <matthias.dahl@binary-island.eu>
> Cc: 16434-done@debbugs.gnu.org, gundaetiapo@gmail.com, monnier@IRO.UMontreal.CA,
> 16378-done@debbugs.gnu.org, cs.mlists+bug-gnu-emacs@mailbox.org,
> 16694-done@debbugs.gnu.org
>
> Hello Eli...
>
> > Done.
>
> Thanks.
I'm sorry, but now I see that the fix of this bug caused an adverse
side effect: face attributes that are defined in the X resources are
now overridden by the face defaults. At least that's what happens on
MS-Windows, where we simulate the X resources in w32reg.c.
Specifically, in Emacs 24.3, the tool bar has its foreground and
background colors set to SystemButtonText and SystemButtonFace,
accordingly, as specified in SYSTEM_DEFAULT_RESOURCES defined by
w32reg.c. By contrast, in the current pretest, this face has the
default foreground and background colors defined by faces.el:
(defface tool-bar
'((default
:box (:line-width 1 :style released-button)
:foreground "black") <<<<<<<<<<<<<<<<<<<<<<<<<<
(((type x w32 ns) (class color))
:background "grey75") <<<<<<<<<<<<<<<<<<<<<<<<<<
This is clearly seen if one tries to customize this face in an Emacs
that was started without -Q.
I looked at the code, and it seems that the problem is in
face-spec-recalc, and the doc string explicitly says that it is the
intended behavior:
(defun face-spec-recalc (face frame)
"Reset the face attributes of FACE on FRAME according to its specs.
After the reset, the specs are applied from the following sources in this order:
X resources (if applicable)
|
(theme and user customization)
or, if nonexistent or does not match the current frame,
(defface default spec)
|
defface override spec"
The code indeed follows the doc string: it first resets the face, then
applies the X resources, and then applies either the theme or the
default face spec:
(face-spec-reset-face face frame)
(make-face-x-resource-internal face frame)
;; If FACE is customized or themed, set the custom spec from
;; `theme-face' records.
(let ((theme-faces (get face 'theme-face))
(no-match-found 0)
spec theme-face-applied)
(if theme-faces
(dolist (elt (reverse theme-faces))
(setq spec (face-spec-choose (cadr elt) frame no-match-found))
(unless (eq spec no-match-found)
(face-spec-set-2 face frame spec)
(setq theme-face-applied t))))
;; If there was a spec applicable to FRAME, that overrides the
;; defface spec entirely (rather than inheriting from it). If
;; there was no spec applicable to FRAME, apply the defface spec.
(unless theme-face-applied
(setq spec (face-spec-choose (face-default-spec face) frame))
(face-spec-set-2 face frame spec))
(setq spec (face-spec-choose (get face 'face-override-spec) frame))
(face-spec-set-2 face frame spec)))
What happens on Windows is that make-face-x-resource-internal indeed
picks up the colors specified bu w32reg.c, but then face-spec-set-2
resets the colors to what the defface spec says.
Can you or someone else see if setting the colors of the tool-bar face
in the X resources on Unix is similarly overridden?
I don't understand this logic: resources are a kind of customization,
so they should override the default face spec, not the other way
around. Am I missing something?
This change was done because --reverse-video didn't work, but what
does --reverse-video have to do with X resources and their priority in
determining the face attributes?
Thanks.
next prev parent reply other threads:[~2014-04-23 15:51 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-08 10:06 bug#16694: Regression by commit 115663 (bzr): Theme face attributes no longer take precedence over X resources Matthias Dahl
2014-02-12 22:21 ` Glenn Morris
2014-02-14 19:17 ` Matthias Dahl
2014-02-20 18:27 ` Eli Zaretskii
2014-02-20 21:47 ` Stefan Monnier
2014-02-21 9:07 ` Eli Zaretskii
2014-02-21 17:36 ` Stefan Monnier
2014-02-23 16:46 ` Matthias Dahl
2014-02-23 17:18 ` Eli Zaretskii
2014-02-24 19:29 ` Matthias Dahl
2014-02-26 15:49 ` bug#16378: Empty face settings ignored (was bug#16694: Regression by commit 115663 (bzr): Theme face attributes no longer take precedence over X resources) Stefan Monnier
2014-02-27 19:05 ` Matthias Dahl
2014-03-02 14:26 ` Matthias Dahl
2014-03-02 16:56 ` Eli Zaretskii
2014-03-05 16:14 ` bug#16694: bugs #16694/#16378: Patches Matthias Dahl
2014-03-16 19:13 ` bug#16378: " Matthias Dahl
2014-03-17 14:33 ` Eli Zaretskii
2014-03-21 18:05 ` bug#16694: " Barry OReilly
2014-03-22 8:30 ` Eli Zaretskii
2014-03-23 17:04 ` Matthias Dahl
2014-03-24 23:42 ` Barry OReilly
2014-03-24 23:49 ` Clemens Schüller
2014-03-25 14:17 ` Barry OReilly
2014-03-25 15:51 ` Eli Zaretskii
2014-03-25 16:17 ` Barry OReilly
2014-03-25 19:09 ` Matthias Dahl
2014-03-26 23:49 ` Barry OReilly
2014-03-27 14:22 ` Stefan Monnier
2014-03-28 14:59 ` Barry OReilly
2014-03-28 15:15 ` bug#16434: " Matthias Dahl
2014-04-01 17:15 ` Barry OReilly
2014-04-01 18:17 ` Matthias Dahl
2014-04-02 15:04 ` Matthias Dahl
2014-04-02 16:47 ` Barry OReilly
2014-04-02 18:36 ` bug#16434: " Matthias Dahl
2014-04-02 19:34 ` Barry OReilly
2014-04-05 7:52 ` bug#16378: " Eli Zaretskii
2014-04-05 15:48 ` Stefan Monnier
2014-04-05 16:15 ` Eli Zaretskii
2014-04-07 9:58 ` bug#16434: " Matthias Dahl
2014-04-09 9:49 ` Matthias Dahl
2014-04-12 11:37 ` bug#16378: " Matthias Dahl
2014-04-12 14:32 ` Eli Zaretskii
2014-04-12 14:57 ` Matthias Dahl
2014-04-23 15:51 ` Eli Zaretskii [this message]
2014-04-23 18:11 ` bug#16434: " Matthias Dahl
2014-04-24 0:36 ` Stefan Monnier
2014-04-27 8:22 ` Matthias Dahl
2014-04-28 16:38 ` Eli Zaretskii
2014-04-28 18:36 ` Matthias Dahl
2014-04-28 19:18 ` Eli Zaretskii
2014-04-30 18:34 ` Matthias Dahl
2014-03-26 15:30 ` Eli Zaretskii
2014-03-26 16:03 ` Glenn Morris
2014-03-26 13:39 ` bug#16694: Strange background color problem in gentoo Linux Barry OReilly
2014-03-26 15:11 ` Joakim Tjernlund
2014-03-26 16:49 ` Barry OReilly
2014-03-26 18:12 ` bug#16694: Strange background color problem in gentoo GNU/Linux Joakim Tjernlund
2014-03-26 15:58 ` bug#16694: Strange background color problem in gentoo Linux Clemens Schüller
2014-03-26 18:18 ` Joakim Tjernlund
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=83zjjc82nq.fsf@gnu.org \
--to=eliz@gnu.org \
--cc=16434@debbugs.gnu.org \
--cc=gundaetiapo@gmail.com \
--cc=matthias.dahl@binary-island.eu \
/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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.