fix(bar): update widgets background color properly

Previously when changing between themes with different backgrounds the
widget's background color was not updating because they take the bg
color from the `RenderConfig` which was only being updated on
`apply_config`, now we also pass the `RenderConfig` to the `apply_theme`
function and update it's `background_color` there as well.
This commit is contained in:
alex-ds13
2024-12-21 08:53:01 -08:00
committed by جاد
parent 99353b8064
commit d93b6fa1b3
2 changed files with 11 additions and 0 deletions
+7
View File
@@ -71,6 +71,7 @@ pub fn apply_theme(
bg_color_with_alpha: Rc<RefCell<Color32>>,
transparency_alpha: Option<u8>,
grouping: Option<Grouping>,
render_config: Rc<RefCell<RenderConfig>>,
) {
match theme {
KomobarTheme::Catppuccin {
@@ -171,6 +172,9 @@ pub fn apply_theme(
});
}
}
// Update RenderConfig's background_color so that widgets will have the new color
render_config.borrow_mut().background_color = *bg_color.borrow();
}
impl Komobar {
@@ -364,6 +368,7 @@ impl Komobar {
self.bg_color_with_alpha.clone(),
config.transparency_alpha,
config.grouping,
self.render_config.clone(),
);
}
None => {
@@ -393,6 +398,7 @@ impl Komobar {
self.bg_color_with_alpha.clone(),
bar_transparency_alpha,
bar_grouping,
self.render_config.clone(),
);
let stack_accent = match theme {
@@ -555,6 +561,7 @@ impl eframe::App for Komobar {
self.config.transparency_alpha,
self.config.grouping,
self.config.theme,
self.render_config.clone(),
);
}