From 1b988ed1e9d2b4346b32c451bac7880d28257dc2 Mon Sep 17 00:00:00 2001 From: Ashley Wulber Date: Thu, 24 Jul 2025 14:31:33 -0400 Subject: [PATCH] fix(theme change): make sure that all theme variables are in sync after a change --- src/app/cosmic.rs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/app/cosmic.rs b/src/app/cosmic.rs index 00ce3ddc..c8a8dfeb 100644 --- a/src/app/cosmic.rs +++ b/src/app/cosmic.rs @@ -690,10 +690,11 @@ impl Cosmic { let mut cmds = vec![self.app.system_theme_mode_update(&keys, &mode)]; let core = self.app.core_mut(); - let prev_is_dark = core.system_is_dark(); core.system_theme_mode = mode; let is_dark = core.system_is_dark(); - let changed = prev_is_dark != is_dark; + let changed = core.system_theme_mode.is_dark != is_dark + || core.portal_is_dark != Some(is_dark) + || core.system_theme.cosmic().is_dark != is_dark; if changed { core.theme_sub_counter += 1; let mut new_theme = if is_dark { @@ -784,10 +785,13 @@ impl Cosmic { ColorScheme::PreferLight => Some(false), }; let core = self.app.core_mut(); - let prev_is_dark = core.system_is_dark(); + core.portal_is_dark = is_dark; let is_dark = core.system_is_dark(); - let changed = prev_is_dark != is_dark; + let changed = core.system_theme_mode.is_dark != is_dark + || core.portal_is_dark != Some(is_dark) + || core.system_theme.cosmic().is_dark != is_dark; + if changed { core.theme_sub_counter += 1; let new_theme = if is_dark {