Commit 7c326d71 authored by Matthias Dahl's avatar Matthias Dahl Committed by Eli Zaretskii

Fix bug #16694 with face attributes changed by themes.

 lisp/faces.el (face-spec-recalc): Doc fix.  Call
 make-face-x-resource-internal earlier, and condition that on
 no-init-from-resources being nil.
parent aac06179
2014-03-22 Matthias Dahl <matthias.dahl@binary-island.eu>
* faces.el (face-spec-recalc): Doc fix. Call
make-face-x-resource-internal earlier, and condition that on
no-init-from-resources being nil. (Bug#16694)
2014-03-22 Juanma Barranquero <lekktu@gmail.com> 2014-03-22 Juanma Barranquero <lekktu@gmail.com>
* w32-common-fns.el (x-selection-owner-p): Add empty docstring for the * w32-common-fns.el (x-selection-owner-p): Add empty docstring for the
......
...@@ -1619,11 +1619,19 @@ function for its other effects." ...@@ -1619,11 +1619,19 @@ function for its other effects."
(defun face-spec-recalc (face frame) (defun face-spec-recalc (face frame)
"Reset the face attributes of FACE on FRAME according to its specs. "Reset the face attributes of FACE on FRAME according to its specs.
This applies the defface/custom spec first, then the custom theme specs, After the reset, the specs are applied from the following sources in this order:
then the override spec." 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) (while (get face 'face-alias)
(setq face (get face 'face-alias))) (setq face (get face 'face-alias)))
(face-spec-reset-face face frame) (face-spec-reset-face face frame)
(unless no-init-from-resources
(make-face-x-resource-internal face frame))
;; If FACE is customized or themed, set the custom spec from ;; If FACE is customized or themed, set the custom spec from
;; `theme-face' records. ;; `theme-face' records.
(let ((theme-faces (get face 'theme-face)) (let ((theme-faces (get face 'theme-face))
...@@ -1641,8 +1649,7 @@ then the override spec." ...@@ -1641,8 +1649,7 @@ then the override spec."
(setq spec (face-spec-choose (face-default-spec face) frame)) (setq spec (face-spec-choose (face-default-spec face) frame))
(face-spec-set-2 face frame spec)) (face-spec-set-2 face frame spec))
(setq spec (face-spec-choose (get face 'face-override-spec) frame)) (setq spec (face-spec-choose (get face 'face-override-spec) frame))
(face-spec-set-2 face frame spec)) (face-spec-set-2 face frame spec)))
(make-face-x-resource-internal face frame))
(defun 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." "Set the face attributes of FACE on FRAME according to SPEC."
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment