Commit e335f09e authored by Chong Yidong's avatar Chong Yidong
Browse files

* custom.el (enable-theme): Signal error if argument is not a

	theme.  Don't recalculate a face if it's not loaded yet.

	* cus-face.el (custom-theme-set-faces): Don't change saved-face if
	the `user' theme is in effect.
parent 93a06865
2005-11-25 Chong Yidong <cyd@stupidchicken.com>
 
* custom.el (enable-theme): Signal error if argument is not a
theme. Don't recalculate a face if it's not loaded yet.
* cus-face.el (custom-theme-set-faces): Don't change saved-face if
the `user' theme is in effect.
* info.el (Info-on-current-buffer): Record actual filename in
Info-current-file, instead of t, or a fake filename if a non-file
buffer. Make autoload.
......
......@@ -320,13 +320,18 @@ FACE's list property `theme-face' \(using `custom-push-theme')."
(let ((face (nth 0 entry))
(spec (nth 1 entry))
(now (nth 2 entry))
(comment (nth 3 entry)))
(comment (nth 3 entry))
oldspec)
;; If FACE is actually an alias, customize the face it
;; is aliased to.
(if (get face 'face-alias)
(setq face (get face 'face-alias)))
(put face 'saved-face spec)
(put face 'saved-face-comment comment)
(setq oldspec (get face 'theme-face))
(when (not (and oldspec (eq 'user (caar oldspec))))
(put face 'saved-face spec)
(put face 'saved-face-comment comment))
(custom-push-theme 'theme-face face theme 'set spec)
(when (or now immediate)
(put face 'force-face (if now 'rogue 'immediate)))
......
......@@ -1120,9 +1120,14 @@ See `custom-theme-load-themes' for more information on BODY."
(defun enable-theme (theme)
"Reenable all variable and face settings defined by THEME.
The newly enabled theme gets the highest precedence (after `user').
If it is already enabled, just give it highest precedence (after `user')."
If it is already enabled, just give it highest precedence (after `user').
This signals an error if THEME does not specify any theme
settings. Theme settings are set using `load-theme'."
(interactive "SEnable Custom theme: ")
(let ((settings (get theme 'theme-settings)))
(if (and (not (eq theme 'user)) (null settings))
(error "No theme settings defined in %s." (symbol-name theme)))
(dolist (s settings)
(let* ((prop (car s))
(symbol (cadr s))
......@@ -1130,7 +1135,8 @@ If it is already enabled, just give it highest precedence (after `user')."
(put symbol prop (cons (cddr s) (assq-delete-all theme spec-list)))
(if (eq prop 'theme-value)
(custom-theme-recalc-variable symbol)
(custom-theme-recalc-face symbol)))))
(if (facep symbol)
(custom-theme-recalc-face symbol))))))
(setq custom-enabled-themes
(cons theme (delq theme custom-enabled-themes)))
;; `user' must always be the highest-precedence enabled theme.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment