summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Dahl <ml_emacs-lists@binary-island.eu>2014-04-05 10:15:11 +0300
committerEli Zaretskii <eliz@gnu.org>2014-04-05 10:15:11 +0300
commiteb7a03cc7672f8179b9d1a403bb019e753ed907f (patch)
tree6e38fc132dd12c1d37d9b0f3a0c6eca27d34e455
parent3ccd4eafd3d51285b2d9eb4e5e83b3be20dbfe9f (diff)
downloademacs-eb7a03cc7672f8179b9d1a403bb019e753ed907f.tar.gz
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.
-rw-r--r--lisp/ChangeLog6
-rw-r--r--lisp/faces.el15
2 files changed, 17 insertions, 4 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 7ab920990b4..a74e121c6bd 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,9 @@
+2014-04-05 Matthias Dahl <ml_emacs-lists@binary-island.eu>
+
+ * 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 <tsdh@gnu.org>
* doc-view.el (doc-view-bookmark-jump): Use
diff --git a/lisp/faces.el b/lisp/faces.el
index e008993b49f..c6dd8d7a2d5 100644
--- a/lisp/faces.el
+++ b/lisp/faces.el
@@ -1619,11 +1619,19 @@ function for its other effects."
(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 @@ 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."