branch: externals/modus-themes
commit 89294a9a6f6ebd2284d2eff0ca6a0b38880a1d08
Merge: f237b3ec470 89e40be4d82
Author: Protesilaos <[email protected]>
Commit: GitHub <[email protected]>
Merge pull request #225 from HeitorAugustoLN/patch-1
Improve core palette loading logic
---
modus-themes.el | 24 +++++++++++++++++++-----
1 file changed, 19 insertions(+), 5 deletions(-)
diff --git a/modus-themes.el b/modus-themes.el
index f30da775a6b..0f7cc85c63e 100644
--- a/modus-themes.el
+++ b/modus-themes.el
@@ -3828,11 +3828,25 @@ If THEME does not have at least a `:modus-core-palette'
among its
Else return (append OVERRIDES USER CORE)."
(when-let* ((properties (get theme 'theme-properties))
- (core-palette (symbol-value (plist-get properties
:modus-core-palette))))
- (let* ((user-palette (when with-user-palette (symbol-value (plist-get
properties :modus-user-palette))))
- (overrides-palette (when with-overrides (symbol-value (plist-get
properties :modus-overrides-palette))))
- (all-overrides (when with-overrides (append overrides-palette
modus-themes-common-palette-overrides))))
- (append all-overrides user-palette core-palette))))
+ (core-palette-name (plist-get properties :modus-core-palette)))
+ ;; If the palette variable hasn't been loaded into memory yet, load the
theme silently
+ (unless (boundp core-palette-name)
+ (load-theme theme t t))
+ (when (boundp core-palette-name)
+ (let* ((core-palette (symbol-value core-palette-name))
+ (user-palette-name (plist-get properties :modus-user-palette))
+ (user-palette (when (and with-user-palette
+ user-palette-name
+ (boundp user-palette-name))
+ (symbol-value user-palette-name)))
+ (overrides-palette-name (plist-get properties
:modus-overrides-palette))
+ (overrides-palette (when (and with-overrides
+ overrides-palette-name
+ (boundp overrides-palette-name))
+ (symbol-value overrides-palette-name)))
+ (all-overrides (when with-overrides
+ (append overrides-palette
modus-themes-common-palette-overrides))))
+ (append all-overrides user-palette core-palette)))))
(defun modus-themes-get-theme-palette (&optional theme with-overrides
with-user-palette)
"Return palette value of active `modus-themes-get-themes' THEME.