From 4158c72b75e36bf7e2ed4b075d0aa7cc5e56581b Mon Sep 17 00:00:00 2001 From: Michael Aaron Murphy Date: Tue, 12 Aug 2025 21:48:37 +0200 Subject: [PATCH] fix(appearance): theme desync causing configs not to be set --- .../src/pages/desktop/appearance/theme_manager.rs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/cosmic-settings/src/pages/desktop/appearance/theme_manager.rs b/cosmic-settings/src/pages/desktop/appearance/theme_manager.rs index 10ba16a..50478a9 100644 --- a/cosmic-settings/src/pages/desktop/appearance/theme_manager.rs +++ b/cosmic-settings/src/pages/desktop/appearance/theme_manager.rs @@ -175,9 +175,7 @@ impl Manager { } let map_data_fn = |customizer: &ThemeCustomizer| { - let builder = customizer.builder.0.clone(); - let (current_theme, config) = customizer.theme.clone(); - (builder, current_theme, config) + (customizer.builder.0.clone(), customizer.theme.1.clone()) }; let current = map_data_fn(if self.mode.0.is_dark { @@ -199,12 +197,16 @@ impl Manager { let mut data = std::iter::once(current).chain(other.into_iter()); cosmic::task::future(async move { - while let Some((builder, current_theme, config)) = data.next() { + while let Some((builder, config)) = data.next() { if let Some(config) = config { + let current_theme = match Theme::get_entry(&config) { + Ok(theme) => theme, + Err((_errs, theme)) => theme, + }; + let new_theme = builder.build(); theme_transaction!(config, current_theme, new_theme, { accent; - accent_text; accent_button; background; button; @@ -221,6 +223,7 @@ impl Manager { warning; warning_button; window_hint; + accent_text; }); } }