From f5e4494cd06f7624382f815585419f489bfe36c3 Mon Sep 17 00:00:00 2001 From: Matthias Dahl Date: Sat, 5 Apr 2014 10:44:56 +0300 Subject: [PATCH] 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. --- lisp/ChangeLog | 6 ++++++ lisp/faces.el | 22 +++++++++++----------- 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 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. -- 2.39.2