summaryrefslogtreecommitdiff
path: root/material_theme
diff options
context:
space:
mode:
authorpml68 <contact@pml68.dev>2025-04-07 23:42:37 +0200
committerpml68 <contact@pml68.dev>2025-04-15 23:48:26 +0200
commitde7647108e831b9201483b665c99d6527964d2ce (patch)
treeedb6f21ed4623a14b45c795ace57ac9afe5c6cbe /material_theme
parentfeat(material_theme): add feature flag based iced_anim support (diff)
downloadiced-builder-de7647108e831b9201483b665c99d6527964d2ce.tar.gz
fix: custom theme Default changing between calls, missing `apply_options`s
Diffstat (limited to 'material_theme')
-rw-r--r--material_theme/src/lib.rs15
1 files changed, 10 insertions, 5 deletions
diff --git a/material_theme/src/lib.rs b/material_theme/src/lib.rs
index 38a94b0..930e511 100644
--- a/material_theme/src/lib.rs
+++ b/material_theme/src/lib.rs
@@ -69,12 +69,17 @@ impl Clone for Theme {
impl Default for Theme {
fn default() -> Self {
- match dark_light::detect().unwrap_or(dark_light::Mode::Unspecified) {
- dark_light::Mode::Dark | dark_light::Mode::Unspecified => {
- DARK.clone()
+ static DEFAULT: LazyLock<Theme> = LazyLock::new(|| {
+ match dark_light::detect().unwrap_or(dark_light::Mode::Unspecified)
+ {
+ dark_light::Mode::Dark | dark_light::Mode::Unspecified => {
+ DARK.clone()
+ }
+ dark_light::Mode::Light => LIGHT.clone(),
}
- dark_light::Mode::Light => LIGHT.clone(),
- }
+ });
+
+ DEFAULT.clone()
}
}