]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix previous change.
authorRichard M. Stallman <rms@gnu.org>
Mon, 11 Jul 2005 01:05:17 +0000 (01:05 +0000)
committerRichard M. Stallman <rms@gnu.org>
Mon, 11 Jul 2005 01:05:17 +0000 (01:05 +0000)
lisp/custom.el

index be65c865f0693560d6d000cd899eb729c2ad2e83..b0c4877d5c8cf3a8ae5f5a5851bfcb5fcb515e6e 100644 (file)
@@ -983,10 +983,16 @@ Every theme X has a property `provide-theme' whose value is \"X-theme\".
 ;; settings of enabled themes that apply to it.
 ;; The property value is a list of settings, each with the form
 ;; (THEME MODE VALUE).  THEME, MODE and VALUE are as above.
+;; Each of these lists is ordered by decreasing theme precedence.
+;; Thus, the first element is always the one that is in effect.
 
-;; When a theme is disabled, its settings are removed from the
-;; `theme-value' and `theme-face' properties, but the
-;; theme's own `theme-settings' property remains unchanged.
+;; Disabling a theme removes its settings from the `theme-value' and
+;; `theme-face' properties, but the theme's own `theme-settings'
+;; property remains unchanged.
+
+;; Loading a theme implicitly enables it.  Enabling a theme adds its
+;; settings to the symbols' `theme-value' and `theme-face' properties,
+;; or moves them to the front of those lists if they're already present.
 
 (defvar custom-loaded-themes nil
   "Custom themes that have been loaded.")
@@ -1101,7 +1107,7 @@ If it is already enabled, just give it highest precedence (after `user')."
        (if (eq prop 'theme-value)
            (custom-theme-recalc-variable symbol)
          (custom-theme-recalc-face symbol)))))
-  (push theme custom-enabled-themes)
+  (push theme (delq theme custom-enabled-themes))
   ;; `user' must always be the highest-precedence enabled theme.
   (unless (eq theme 'user)
     (custom-enable-theme 'user)))