summaryrefslogtreecommitdiff
path: root/lisp/cus-theme.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/cus-theme.el')
-rw-r--r--lisp/cus-theme.el17
1 files changed, 12 insertions, 5 deletions
diff --git a/lisp/cus-theme.el b/lisp/cus-theme.el
index 79799049378..606033f915c 100644
--- a/lisp/cus-theme.el
+++ b/lisp/cus-theme.el
@@ -81,7 +81,9 @@ Do not call this mode function yourself. It is meant for internal use."
(defun customize-create-theme (&optional theme buffer)
"Create or edit a custom theme.
THEME, if non-nil, should be an existing theme to edit. If THEME
-is `user', provide an option to remove these as custom settings.
+is `user', the resulting *Custom Theme* buffer also contains a
+checkbox for removing the theme settings specified in the buffer
+from the Custom save file.
BUFFER, if non-nil, should be a buffer to use; the default is
named *Custom Theme*."
(interactive)
@@ -209,6 +211,8 @@ remove them from your saved Custom file.\n\n"))
(message "")))
(defun custom-theme-revert (_ignore-auto noconfirm)
+ "Revert the current *Custom Theme* buffer.
+This is the `revert-buffer-function' for `custom-new-theme-mode'."
(when (or noconfirm (y-or-n-p "Discard current changes? "))
(customize-create-theme custom-theme--save-name (current-buffer))))
@@ -437,14 +441,17 @@ It includes all faces in list FACES."
(princ theme)
(princ "\n")
(dolist (spec faces)
+ ;; Insert the face iff the checkbox widget is checked.
(when (widget-get (nth 1 spec) :value)
(let* ((symbol (nth 0 spec))
(widget (nth 2 spec))
(value
- (if (car-safe (widget-get widget :children))
- (custom-face-widget-to-spec widget)
- ;; Child is null if the widget is closed (hidden).
- (widget-get widget :shown-value))))
+ (cond
+ ((car-safe (widget-get widget :children))
+ (custom-face-widget-to-spec widget))
+ ;; Child is null if the widget is closed (hidden).
+ ((widget-get widget :shown-value))
+ (t (custom-face-get-current-spec symbol)))))
(when (and (facep symbol) value)
(princ (if (bolp) " '(" "\n '("))
(prin1 symbol)