From e02577b7d8dc9e9384b0e27edf992a5606b81465 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Tue, 21 Mar 2006 16:44:10 +0000 Subject: [PATCH] * cus-edit.el (custom-face-set): Call custom-push-theme before face-spec set so that `changed' theme is correctly saved. (custom-face-reset-standard): Reset to recalculated face rather than defface spec. * custom.el (custom-push-theme): Only save `changed' theme if the current face does not match the defface specs. --- lisp/ChangeLog | 10 ++++++++++ lisp/cus-edit.el | 8 ++++++-- lisp/custom.el | 3 ++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 22a05486c9e..acfc4975c54 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,13 @@ +2006-03-21 Chong Yidong + + * cus-edit.el (custom-face-set): Call custom-push-theme before + face-spec set so that `changed' theme is correctly saved. + (custom-face-reset-standard): Reset to recalculated face rather + than defface spec. + + * custom.el (custom-push-theme): Only save `changed' theme if the + current face does not match the defface specs. + 2006-03-21 Simon Josefsson * pgg-gpg.el: Ideas below based on patch from Sascha Wilde diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el index 74e63454ad9..e2275ce356d 100644 --- a/lisp/cus-edit.el +++ b/lisp/cus-edit.el @@ -3412,12 +3412,12 @@ Optional EVENT is the location for the menu." ;; 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) ;; face-set-spec ignores empty attribute lists, so just give it ;; something harmless instead. (face-spec-set symbol '((t :foreground unspecified)))) - (custom-push-theme 'theme-face symbol 'user 'set value) (put symbol 'customized-face-comment comment) (put symbol 'face-comment comment) (custom-face-state-set widget) @@ -3490,13 +3490,17 @@ restoring it to the state of a face that has never been customized." (put symbol 'customized-face nil) (put symbol 'customized-face-comment nil) (custom-push-theme 'theme-face symbol 'user 'reset) + (face-spec-set symbol value) (custom-theme-recalc-face symbol) (when (or (get symbol 'saved-face) (get symbol 'saved-face-comment)) (put symbol 'saved-face nil) (put symbol 'saved-face-comment nil) (custom-save-all)) (put symbol 'face-comment nil) - (widget-value-set child value) + (widget-value-set child + (custom-pre-filter-face-spec + (list (list t (custom-face-attributes-get + symbol nil))))) ;; This call manages the comment visibility (widget-value-set comment-widget "") (custom-face-state-set widget) diff --git a/lisp/custom.el b/lisp/custom.el index 15b5b4a815c..c67f3b06272 100644 --- a/lisp/custom.el +++ b/lisp/custom.el @@ -819,7 +819,8 @@ See `custom-known-themes' for a list of known themes." (not (equal (eval (car (get symbol 'standard-value))) (symbol-value symbol))))) (setq old (list (list 'changed (symbol-value symbol)))) - (if (facep symbol) + (if (and (facep symbol) + (not (face-spec-match-p symbol (get symbol 'face-defface-spec)))) (setq old (list (list 'changed (list (append '(t) (custom-face-attributes-get symbol nil))))))))) (put symbol prop (cons (list theme value) old)) -- 2.39.2