emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs-24 r116910: Fix bug #16694 with theme face precedenc


From: Eli Zaretskii
Subject: [Emacs-diffs] emacs-24 r116910: Fix bug #16694 with theme face precedence.
Date: Sat, 05 Apr 2014 07:15:56 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 116910
revision-id: address@hidden
parent: address@hidden
fixes bug: http://debbugs.gnu.org/16694
author: Matthias Dahl <address@hidden>
committer: Eli Zaretskii <address@hidden>
branch nick: emacs-24
timestamp: Sat 2014-04-05 10:15:11 +0300
message:
  Fix bug #16694 with theme face precedence.
  
   lisp/faces.el (face-spec-recalc): Call make-face-x-resource-internal
   only when inhibit-x-resources is nil, and do that earlier in the
   function.  Doc fix.
modified:
  lisp/ChangeLog                 changelog-20091113204419-o5vbwnq5f7feedwu-1432
  lisp/faces.el                  faces.el-20091113204419-o5vbwnq5f7feedwu-562
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2014-04-04 17:42:55 +0000
+++ b/lisp/ChangeLog    2014-04-05 07:15:11 +0000
@@ -1,3 +1,9 @@
+2014-04-05  Matthias Dahl  <address@hidden>
+
+       * faces.el (face-spec-recalc): Call make-face-x-resource-internal
+       only when inhibit-x-resources is nil, and do that earlier in the
+       function.  Doc fix.  (Bug#16694)
+
 2014-04-04  Tassilo Horn  <address@hidden>
 
        * doc-view.el (doc-view-bookmark-jump): Use

=== modified file 'lisp/faces.el'
--- a/lisp/faces.el     2014-03-22 08:28:20 +0000
+++ b/lisp/faces.el     2014-04-05 07:15:11 +0000
@@ -1619,11 +1619,19 @@
 
 (defun face-spec-recalc (face frame)
   "Reset the face attributes of FACE on FRAME according to its specs.
-This applies the defface/custom spec first, then the custom theme specs,
-then the override spec."
+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"
   (while (get face 'face-alias)
     (setq face (get face 'face-alias)))
   (face-spec-reset-face face frame)
+  (unless inhibit-x-resources
+    (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))
@@ -1641,8 +1649,7 @@
       (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."


reply via email to

[Prev in Thread] Current Thread [Next in Thread]