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

97
Cargo.lock generated
View file

@ -1519,7 +1519,6 @@ dependencies = [
[[package]]
name = "cosmic-config"
version = "0.1.0"
source = "git+https://github.com/pop-os/libcosmic#1af2f4ffe57b402000c5982e3008395191e5cadd"
dependencies = [
"atomicwrites",
"cosmic-config-derive",
@ -1529,7 +1528,6 @@ dependencies = [
"iced_futures",
"known-folders",
"notify 8.0.0",
"notify-debouncer-full",
"once_cell",
"ron 0.9.0",
"serde",
@ -1542,7 +1540,6 @@ dependencies = [
[[package]]
name = "cosmic-config-derive"
version = "0.1.0"
source = "git+https://github.com/pop-os/libcosmic#1af2f4ffe57b402000c5982e3008395191e5cadd"
dependencies = [
"quote",
"syn 2.0.104",
@ -1873,7 +1870,6 @@ dependencies = [
[[package]]
name = "cosmic-theme"
version = "0.1.0"
source = "git+https://github.com/pop-os/libcosmic#1af2f4ffe57b402000c5982e3008395191e5cadd"
dependencies = [
"almost",
"cosmic-config",
@ -2525,15 +2521,6 @@ dependencies = [
"simd-adler32",
]
[[package]]
name = "file-id"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6bc904b9bbefcadbd8e3a9fb0d464a9b979de6324c03b3c663e8994f46a5be36"
dependencies = [
"windows-sys 0.52.0",
]
[[package]]
name = "filetime"
version = "0.2.25"
@ -3269,7 +3256,7 @@ dependencies = [
"js-sys",
"log",
"wasm-bindgen",
"windows-core 0.61.2",
"windows-core 0.57.0",
]
[[package]]
@ -3284,7 +3271,6 @@ dependencies = [
[[package]]
name = "iced"
version = "0.14.0-dev"
source = "git+https://github.com/pop-os/libcosmic#1af2f4ffe57b402000c5982e3008395191e5cadd"
dependencies = [
"dnd",
"iced_accessibility",
@ -3302,7 +3288,6 @@ dependencies = [
[[package]]
name = "iced_accessibility"
version = "0.1.0"
source = "git+https://github.com/pop-os/libcosmic#1af2f4ffe57b402000c5982e3008395191e5cadd"
dependencies = [
"accesskit",
"accesskit_winit",
@ -3311,7 +3296,6 @@ dependencies = [
[[package]]
name = "iced_core"
version = "0.14.0-dev"
source = "git+https://github.com/pop-os/libcosmic#1af2f4ffe57b402000c5982e3008395191e5cadd"
dependencies = [
"bitflags 2.9.1",
"bytes",
@ -3336,7 +3320,6 @@ dependencies = [
[[package]]
name = "iced_futures"
version = "0.14.0-dev"
source = "git+https://github.com/pop-os/libcosmic#1af2f4ffe57b402000c5982e3008395191e5cadd"
dependencies = [
"futures",
"iced_core",
@ -3362,7 +3345,6 @@ dependencies = [
[[package]]
name = "iced_graphics"
version = "0.14.0-dev"
source = "git+https://github.com/pop-os/libcosmic#1af2f4ffe57b402000c5982e3008395191e5cadd"
dependencies = [
"bitflags 2.9.1",
"bytemuck",
@ -3384,7 +3366,6 @@ dependencies = [
[[package]]
name = "iced_renderer"
version = "0.14.0-dev"
source = "git+https://github.com/pop-os/libcosmic#1af2f4ffe57b402000c5982e3008395191e5cadd"
dependencies = [
"iced_graphics",
"iced_tiny_skia",
@ -3396,7 +3377,6 @@ dependencies = [
[[package]]
name = "iced_runtime"
version = "0.14.0-dev"
source = "git+https://github.com/pop-os/libcosmic#1af2f4ffe57b402000c5982e3008395191e5cadd"
dependencies = [
"bytes",
"cosmic-client-toolkit",
@ -3412,7 +3392,6 @@ dependencies = [
[[package]]
name = "iced_tiny_skia"
version = "0.14.0-dev"
source = "git+https://github.com/pop-os/libcosmic#1af2f4ffe57b402000c5982e3008395191e5cadd"
dependencies = [
"bytemuck",
"cosmic-text",
@ -3428,7 +3407,6 @@ dependencies = [
[[package]]
name = "iced_wgpu"
version = "0.14.0-dev"
source = "git+https://github.com/pop-os/libcosmic#1af2f4ffe57b402000c5982e3008395191e5cadd"
dependencies = [
"as-raw-xcb-connection",
"bitflags 2.9.1",
@ -3459,7 +3437,6 @@ dependencies = [
[[package]]
name = "iced_widget"
version = "0.14.0-dev"
source = "git+https://github.com/pop-os/libcosmic#1af2f4ffe57b402000c5982e3008395191e5cadd"
dependencies = [
"cosmic-client-toolkit",
"dnd",
@ -3479,7 +3456,6 @@ dependencies = [
[[package]]
name = "iced_winit"
version = "0.14.0-dev"
source = "git+https://github.com/pop-os/libcosmic#1af2f4ffe57b402000c5982e3008395191e5cadd"
dependencies = [
"cosmic-client-toolkit",
"dnd",
@ -4592,7 +4568,6 @@ checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776"
[[package]]
name = "libcosmic"
version = "0.1.0"
source = "git+https://github.com/pop-os/libcosmic#1af2f4ffe57b402000c5982e3008395191e5cadd"
dependencies = [
"apply",
"ashpd 0.11.0",
@ -5252,19 +5227,6 @@ dependencies = [
"windows-sys 0.59.0",
]
[[package]]
name = "notify-debouncer-full"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2d88b1a7538054351c8258338df7c931a590513fb3745e8c15eb9ff4199b8d1"
dependencies = [
"file-id",
"log",
"notify 8.0.0",
"notify-types",
"walkdir",
]
[[package]]
name = "notify-types"
version = "2.0.0"
@ -8535,7 +8497,7 @@ version = "0.54.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65"
dependencies = [
"windows-result 0.1.2",
"windows-result",
"windows-targets 0.52.6",
]
@ -8547,23 +8509,10 @@ checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d"
dependencies = [
"windows-implement 0.57.0",
"windows-interface 0.57.0",
"windows-result 0.1.2",
"windows-result",
"windows-targets 0.52.6",
]
[[package]]
name = "windows-core"
version = "0.61.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3"
dependencies = [
"windows-implement 0.60.0",
"windows-interface 0.59.1",
"windows-link",
"windows-result 0.3.4",
"windows-strings",
]
[[package]]
name = "windows-implement"
version = "0.53.0"
@ -8586,17 +8535,6 @@ dependencies = [
"syn 2.0.104",
]
[[package]]
name = "windows-implement"
version = "0.60.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.104",
]
[[package]]
name = "windows-interface"
version = "0.53.0"
@ -8619,17 +8557,6 @@ dependencies = [
"syn 2.0.104",
]
[[package]]
name = "windows-interface"
version = "0.59.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.104",
]
[[package]]
name = "windows-link"
version = "0.1.3"
@ -8645,24 +8572,6 @@ dependencies = [
"windows-targets 0.52.6",
]
[[package]]
name = "windows-result"
version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6"
dependencies = [
"windows-link",
]
[[package]]
name = "windows-strings"
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57"
dependencies = [
"windows-link",
]
[[package]]
name = "windows-sys"
version = "0.45.0"

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(