Fixes for theme updates

This commit is contained in:
Jeremy Soller 2025-06-23 11:49:19 -06:00
parent 68522ff228
commit 5e27e70965
4 changed files with 18 additions and 100 deletions

View file

@ -117,7 +117,7 @@ git = "https://github.com/AerynOS/locales-rs"
optional = true
[features]
default = ["a11y", "dbus-config", "linux", "single-instance", "wgpu"]
default = ["a11y", "linux", "single-instance", "wgpu"]
gettext = ["dep:gettext-rs"]
# Default features for Linux

View file

@ -230,7 +230,10 @@ impl cosmic::Application for SettingsApp {
}
.unwrap_or(desktop_id);
let task = app.activate_page(active_id);
let task = Task::batch([
cosmic::command::set_theme(cosmic::theme::system_preference()),
app.activate_page(active_id),
]);
(app, task)
}

View file

@ -619,7 +619,7 @@ impl Page {
tracing::error!(?err, "Error setting dark mode");
}
self.reload_theme_mode();
tasks.push(self.reload_theme_mode());
}
}
@ -894,6 +894,10 @@ impl Page {
.iter()
.position(|theme| theme.id == active_icon_theme);
self.icon_handles = icon_handles;
tasks.push(cosmic::task::message(app::Message::SetTheme(
cosmic::theme::system_preference(),
)));
}
Message::Left => {
@ -976,7 +980,7 @@ impl Page {
Self::update_panel_spacing(Density::Standard);
});
self.reload_theme_mode();
tasks.push(self.reload_theme_mode());
}
#[cfg(feature = "xdg-portal")]
@ -1111,7 +1115,7 @@ impl Page {
tracing::error!("Failed to get the theme config.");
}
self.reload_theme_mode();
tasks.push(self.reload_theme_mode());
}
Message::UseDefaultWindowHint(v) => {
@ -1293,7 +1297,7 @@ impl Page {
];
}
fn reload_theme_mode(&mut self) {
fn reload_theme_mode(&mut self) -> Task<app::Message> {
let entity = self.entity;
let font_config = std::mem::take(&mut self.font_config);
let icon_themes = std::mem::take(&mut self.icon_themes);
@ -1316,6 +1320,8 @@ impl Page {
self.icon_handles = icon_handles;
self.icon_theme_active = icon_theme_active;
self.font_config = font_config;
cosmic::task::message(app::Message::SetTheme(cosmic::theme::system_preference()))
}
fn update_color_picker(