2013-12-18 Chong Yidong <cyd@gnu.org>
+ * custom.el (custom-push-theme): If custom--inhibit-theme-enable
+ is non-nil, do not create a new entry in the symbol's theme-value
+ or theme-face property; update theme-settings only (Bug#14664).
+
* cus-theme.el (custom-new-theme-mode-map): Add bindings
(Bug#15674).
(setcar (cdr setting) value)))
;; Add a new setting:
(t
- (unless old
- ;; If the user changed a variable outside of Customize, save
- ;; the value to a fake theme, `changed'. If the theme is
- ;; later disabled, we use this to bring back the old value.
- ;;
- ;; For faces, we just use `face-new-frame-defaults' to
- ;; recompute when the theme is disabled.
- (when (and (eq prop 'theme-value)
- (boundp symbol))
- (let ((sv (get symbol 'standard-value))
- (val (symbol-value symbol)))
- (unless (and sv (equal (eval (car sv)) val))
- (setq old `((changed ,(custom-quote val))))))))
- (put symbol prop (cons (list theme value) old))
+ (unless custom--inhibit-theme-enable
+ (unless old
+ ;; If the user changed a variable outside of Customize, save
+ ;; the value to a fake theme, `changed'. If the theme is
+ ;; later disabled, we use this to bring back the old value.
+ ;;
+ ;; For faces, we just use `face-new-frame-defaults' to
+ ;; recompute when the theme is disabled.
+ (when (and (eq prop 'theme-value)
+ (boundp symbol))
+ (let ((sv (get symbol 'standard-value))
+ (val (symbol-value symbol)))
+ (unless (and sv (equal (eval (car sv)) val))
+ (setq old `((changed ,(custom-quote val))))))))
+ (put symbol prop (cons (list theme value) old)))
(put theme 'theme-settings
(cons (list prop symbol theme value) theme-settings))))))