Daniel Brötzmann pushed to branch master at gajim / gajim
Commits:
f1431973 by wurstsalat at 2025-08-24T17:08:25+02:00
fix: Dark mode: Fix switching dark/light mode for some elements
Fixes #12426
- - - - -
1 changed file:
- gajim/gtk/css_config.py
Changes:
=====================================
gajim/gtk/css_config.py
=====================================
@@ -85,7 +85,9 @@ def __init__(self) -> None:
self._css_path: Path | None = None
# User Theme CSS Provider
- self._provider = Gtk.CssProvider()
+ self._user_theme_provider = Gtk.CssProvider()
+
+ self._default_providers: list[Gtk.CssProvider] = []
# Used for dynamic classes like account colors
self._dynamic_provider = Gtk.CssProvider()
@@ -120,7 +122,7 @@ def __init__(self) -> None:
self._activate_theme()
Gtk.StyleContext.add_provider_for_display(
- display, self._provider, CSSPriority.USER_THEME
+ display, self._user_theme_provider, CSSPriority.USER_THEME
)
self.apply_app_font_size()
@@ -160,6 +162,12 @@ def set_dark_theme(self, value: int | None = None) -> None:
adw_style_manager.set_color_scheme(Adw.ColorScheme.FORCE_LIGHT)
def reload_css(self) -> None:
+ display = Gdk.Display.get_default()
+ assert display is not None
+
+ for provider in self._default_providers:
+ Gtk.StyleContext.remove_provider_for_display(display, provider)
+
self._load_css()
def _load_css(self) -> None:
@@ -185,6 +193,8 @@ def _activate_css(self, css: str, priority: CSSPriority) ->
None:
try:
provider = Gtk.CssProvider()
provider.load_from_bytes(GLib.Bytes.new(css.encode("utf-8")))
+ self._default_providers.append(provider)
+
display = Gdk.Display.get_default()
assert display is not None
Gtk.StyleContext.add_provider_for_display(display, provider,
priority)
@@ -597,7 +607,7 @@ def _activate_theme(self) -> None:
log.info("Activate theme")
self._invalidate_cache()
assert self._css is not None
- self._provider.load_from_bytes(GLib.Bytes.new(self._css.cssText))
+
self._user_theme_provider.load_from_bytes(GLib.Bytes.new(self._css.cssText))
def add_new_theme(self, theme: str) -> bool:
theme_path = self.get_theme_path(theme)
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/commit/f1431973163e2304e0f261d11e5e620062d7114e
--
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/commit/f1431973163e2304e0f261d11e5e620062d7114e
You're receiving this email because of your account on dev.gajim.org.
_______________________________________________
Commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]