summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Dahl <ml_emacs-lists@binary-island.eu>2014-04-05 10:44:56 +0300
committerEli Zaretskii <eliz@gnu.org>2014-04-05 10:44:56 +0300
commitf5e4494cd06f7624382f815585419f489bfe36c3 (patch)
treeb4891d0af45bc66e1dd58eba18f56568746142f3
parentfdafd487a90fbd4febe853971f238c5395c12542 (diff)
downloademacs-f5e4494cd06f7624382f815585419f489bfe36c3.tar.gz
Fix bug #16434 with handling the -rv command-line option.
lisp/faces.el (make-face-x-resource-internal): Do nothing when inhibit-x-resources is non-nil. Don't touch the default face if reversed video is given--as was done in previous versions of Emacs. (face-set-after-frame-default): Don't call make-face-x-resource-internal here.
-rw-r--r--lisp/ChangeLog6
-rw-r--r--lisp/faces.el22
2 files changed, 17 insertions, 11 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index bb283ab84df..71f3749a19c 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -7,6 +7,12 @@
value is returned if no matching attributes are found.
(face-spec-recalc): Use the new optional argument when calling
face-spec-choose. (Bug#16378)
+ (make-face-x-resource-internal): Do nothing when
+ inhibit-x-resources is non-nil. Don't touch the default face if
+ reversed video is given--as was done in previous versions of
+ Emacs.
+ (face-set-after-frame-default): Don't call
+ make-face-x-resource-internal here. (Bug#16434)
2014-04-04 Tassilo Horn <tsdh@gnu.org>
diff --git a/lisp/faces.el b/lisp/faces.el
index 1255d7c9ff7..e4d8a35ac68 100644
--- a/lisp/faces.el
+++ b/lisp/faces.el
@@ -334,11 +334,16 @@ specifies an invalid attribute."
(defun make-face-x-resource-internal (face &optional frame)
"Fill frame-local FACE on FRAME from X resources.
-FRAME nil or not specified means do it for all frames."
- (if (null frame)
- (dolist (frame (frame-list))
- (set-face-attributes-from-resources face frame))
- (set-face-attributes-from-resources face frame)))
+FRAME nil or not specified means do it for all frames.
+
+If `inhibit-x-resources' is non-nil, this function does nothing."
+ (unless inhibit-x-resources
+ (dolist (frame (if (null frame) (frame-list) (list frame)))
+ ;; `x-create-frame' already took care of correctly handling
+ ;; the reverse video case-- do _not_ touch the default face
+ (unless (and (eq face 'default)
+ (frame-parameter frame 'reverse))
+ (set-face-attributes-from-resources face frame)))))
@@ -1641,8 +1646,7 @@ After the reset, the specs are applied from the following sources in this order:
(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))
+ (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))
@@ -2045,10 +2049,6 @@ frame parameters in PARAMETERS."
(progn
;; 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))
;; Apply attributes specified by face-new-frame-defaults
(internal-merge-in-global-face face frame))
;; Don't let invalid specs prevent frame creation.