diff options
author | Chong Yidong <cyd@gnu.org> | 2012-11-25 12:50:20 +0800 |
---|---|---|
committer | Chong Yidong <cyd@gnu.org> | 2012-11-25 12:50:20 +0800 |
commit | 1c4f115d4c4eb1aa71c25d21e8bdec2f8da97700 (patch) | |
tree | 8fb4e906b3cc5455ab45383267eac3c49da5ef44 /lisp/cus-edit.el | |
parent | 61d841dd15f1f9921e23d93e8a0c282fe568aed1 (diff) | |
download | emacs-1c4f115d4c4eb1aa71c25d21e8bdec2f8da97700.tar.gz |
Revamp face-spec-set to be more analogous to setq for faces.
* lisp/faces.el (face-spec-set): Change the third arg to specify
whether this function is being called via defface, customize, or a
third party. Set the appropriate symbol properties. Clear the
override spec if setting via Custom. Initialize face if necessary.
(face-spec-recalc): Allow theme faces to completely replace the
defface spec, in the same way as custom faces (Bug#8454).
* lisp/cus-edit.el (custom-face-set, custom-face-mark-to-save)
(custom-face-reset-saved, custom-face-mark-to-reset-standard):
Simplify by using the new arg to face-spec-set.
* lisp/cus-face.el (custom-declare-face): Move face initialization to
face-spec-set.
(custom-theme-set-faces): Don't initialize the face name here, as
that is now done in face-spec-set.
* lisp/emacs-lisp/lisp-mode.el (eval-defun-1): When evaluating defface,
reset face-override-spec too, and use custom-declare-face.
Fixes: debbugs:4988
Diffstat (limited to 'lisp/cus-edit.el')
-rw-r--r-- | lisp/cus-edit.el | 34 |
1 files changed, 10 insertions, 24 deletions
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el index 8e06b16bd12..69e694bd14e 100644 --- a/lisp/cus-edit.el +++ b/lisp/cus-edit.el @@ -3679,15 +3679,10 @@ Optional EVENT is the location for the menu." (setq comment nil) ;; Make the comment invisible by hand if it's empty (custom-comment-hide comment-widget)) - (put symbol 'customized-face value) (custom-push-theme 'theme-face symbol 'user 'set value) - (if (face-spec-choose value) - (face-spec-set symbol value t) - ;; face-set-spec ignores empty attribute lists, so just give it - ;; something harmless instead. - (face-spec-set symbol '((t :foreground unspecified)) t)) - (put symbol 'customized-face-comment comment) + (face-spec-set symbol value 'customized-face) (put symbol 'face-comment comment) + (put symbol 'customized-face-comment comment) (custom-face-state-set widget) (custom-redraw-magic widget))) @@ -3696,20 +3691,14 @@ Optional EVENT is the location for the menu." (let* ((symbol (widget-value widget)) (value (custom-face-widget-to-spec widget)) (comment-widget (widget-get widget :comment-widget)) - (comment (widget-value comment-widget))) + (comment (widget-value comment-widget)) + (standard (eq (widget-get widget :custom-state) 'standard))) (when (equal comment "") (setq comment nil) ;; Make the comment invisible by hand if it's empty (custom-comment-hide comment-widget)) (custom-push-theme 'theme-face symbol 'user 'set value) - (if (face-spec-choose value) - (face-spec-set symbol value t) - ;; face-set-spec ignores empty attribute lists, so just give it - ;; something harmless instead. - (face-spec-set symbol '((t :foreground unspecified)) t)) - (unless (eq (widget-get widget :custom-state) 'standard) - (put symbol 'saved-face value)) - (put symbol 'customized-face nil) + (face-spec-set symbol value (if standard 'reset 'saved-face)) (put symbol 'face-comment comment) (put symbol 'customized-face-comment nil) (put symbol 'saved-face-comment comment))) @@ -3738,13 +3727,12 @@ uncustomized (themed or standard) face." (saved-face (get face 'saved-face)) (comment (get face 'saved-face-comment)) (comment-widget (widget-get widget :comment-widget))) - (put face 'customized-face nil) - (put face 'customized-face-comment nil) (custom-push-theme 'theme-face face 'user (if saved-face 'set 'reset) saved-face) - (face-spec-set face saved-face t) + (face-spec-set face saved-face 'saved-face) (put face 'face-comment comment) + (put face 'customized-face-comment nil) (widget-value-set child saved-face) ;; This call manages the comment visibility (widget-value-set comment-widget (or comment "")) @@ -3764,11 +3752,10 @@ redraw the widget immediately." (comment-widget (widget-get widget :comment-widget))) (unless value (user-error "No standard setting for this face")) - (put symbol 'customized-face nil) - (put symbol 'customized-face-comment nil) (custom-push-theme 'theme-face symbol 'user 'reset) - (face-spec-set symbol value t) - (custom-theme-recalc-face symbol) + (face-spec-set symbol value 'reset) + (put symbol 'face-comment nil) + (put symbol 'customized-face-comment nil) (if (and custom-reset-standard-faces-list (or (get symbol 'saved-face) (get symbol 'saved-face-comment))) ;; Do this later. @@ -3784,7 +3771,6 @@ redraw the widget immediately." (put symbol 'saved-face nil) (put symbol 'saved-face-comment nil) (custom-save-all)) - (put symbol 'face-comment nil) (widget-value-set child (custom-pre-filter-face-spec (list (list t (custom-face-attributes-get |