unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Barry OReilly <gundaetiapo@gmail.com>
To: Matthias Dahl <ml_emacs-lists@binary-island.eu>
Cc: "Clemens Schüller" <cs.mlists+bug-gnu-emacs@mailbox.org>,
	16694@debbugs.gnu.org
Subject: bug#16694: bugs #16694/#16378: Patches
Date: Wed, 26 Mar 2014 19:49:29 -0400	[thread overview]
Message-ID: <CAFM41H2N7m00NxG6-tHq=ZDzPsRs_YxhZd-R4L5t_B6RfgoQOg@mail.gmail.com> (raw)
In-Reply-To: <5331D45B.7090704@binary-island.eu>

[-- Attachment #1: Type: text/plain, Size: 2613 bytes --]

In face-set-after-frame-default, a function untouched in Chong's
changes, there is:

  (let ((window-system-p (memq (window-system frame) '(x w32))))
[...]
        ;; Initialize faces from face spec and custom theme.
        (face-spec-recalc face frame)
        ;; X resources for the default face are applied during
        ;; `x-create-frame'.
        (and (not (eq face 'default)) window-system-p
         (make-face-x-resource-internal face frame))

But the

  (and (not (eq face 'default)) window-system-p ...)

is completely pointless, since Chong's changes have face-spec-recalc
call make-face-x-resource-internal unconditionally. On a hunch, I
tried:

diff --git a/lisp/faces.el b/lisp/faces.el
index e008993..1150d8f 100644
--- a/lisp/faces.el
+++ b/lisp/faces.el
@@ -1642,7 +1642,9 @@ then the override spec."
       (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))
-  (make-face-x-resource-internal face frame))
+  (and (not (eq face 'default))
+       (memq (window-system frame) '(x w32))
+       (make-face-x-resource-internal face frame)))

 (defun face-spec-set-2 (face frame spec)
   "Set the face attributes of FACE on FRAME according to SPEC."

with no other patches, and './src/emacs -r' worked as expected.

Should face-spec-recalc take responsibility for calling
make-face-x-resource-internal, or leave it to the caller as before the
offending changes? A patch along those lines also allows './src/emacs
-r' to work:

diff --git a/lisp/faces.el b/lisp/faces.el
index e008993..2f8560a 100644
--- a/lisp/faces.el
+++ b/lisp/faces.el
@@ -1615,7 +1615,8 @@ function for its other effects."
   ;; Initialize the face if it does not exist, then recalculate.
   (make-empty-face face)
   (dolist (frame (frame-list))
-    (face-spec-recalc face frame)))
+    (face-spec-recalc face frame)
+    (make-face-x-resource-internal face frame)))

 (defun face-spec-recalc (face frame)
   "Reset the face attributes of FACE on FRAME according to its specs.
@@ -1641,8 +1642,7 @@ then the override spec."
       (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))
-  (make-face-x-resource-internal face frame))
+    (face-spec-set-2 face frame spec)))

 (defun face-spec-set-2 (face frame spec)
   "Set the face attributes of FACE on FRAME according to SPEC."

Someone who knows this code better than me should decide what's The
Right Thing.

[-- Attachment #2: Type: text/html, Size: 2977 bytes --]

  reply	other threads:[~2014-03-26 23:49 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 [this message]
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                                       ` bug#16434: " Eli Zaretskii
2014-04-23 18:11                                         ` 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

  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='CAFM41H2N7m00NxG6-tHq=ZDzPsRs_YxhZd-R4L5t_B6RfgoQOg@mail.gmail.com' \
    --to=gundaetiapo@gmail.com \
    --cc=16694@debbugs.gnu.org \
    --cc=cs.mlists+bug-gnu-emacs@mailbox.org \
    --cc=ml_emacs-lists@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 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).