Daniel Brötzmann pushed to branch adw-application at gajim / gajim


Commits:
31fe7063 by wurstsalat at 2025-03-18T21:43:52+01:00
change: Styles: Use Adw.StyleManager for managing light/dark mode

- - - - -


1 changed file:

- gajim/gtk/css_config.py


Changes:

=====================================
gajim/gtk/css_config.py
=====================================
@@ -14,6 +14,7 @@
 import css_parser
 from css_parser.css import CSSStyleRule
 from css_parser.css import CSSStyleSheet
+from gi.repository import Adw
 from gi.repository import Gdk
 from gi.repository import GLib
 from gi.repository import Gtk
@@ -32,7 +33,6 @@
 from gajim.gtk.const import Theme
 
 log = logging.getLogger("gajim.gtk.css")
-settings = Gtk.Settings.get_default()
 
 
 class CSSConfig:
@@ -43,7 +43,7 @@ def __init__(self) -> None:
         The order in which CSSConfig loads the styles
 
         1. gajim.css
-        2. gajim-dark.css (Only if gtk-application-prefer-dark-theme = True)
+        2. gajim-dark.css (Only if Adw.StyleManager.get_dark() = True)
         3. default.css or default-dark.css (from gajim/data/style)
         4. user-theme.css (from ~/.config/Gajim/theme)
 
@@ -58,7 +58,7 @@ def __init__(self) -> None:
         # default.css or default-dark.css
 
         Has all the values that are changeable via UI (see themes.py).
-        Depending on `gtk-application-prefer-dark-theme` either default.css or
+        Depending on `Adw.StyleManager.get_dark()` either default.css or
         default-dark.css gets loaded
 
         # user-theme.css
@@ -131,9 +131,10 @@ def prefer_dark(self) -> bool:
         if setting == Theme.SYSTEM:
             if self._system_style.prefer_dark is not None:
                 return self._system_style.prefer_dark
-            if settings is None:
-                return False
-            return settings.get_property("gtk-application-prefer-dark-theme")
+
+            adw_style_manager = Adw.StyleManager.get_default()
+            return adw_style_manager.get_dark()
+
         return setting == Theme.DARK
 
     def set_dark_theme(self, value: int | None = None) -> None:
@@ -142,14 +143,18 @@ def set_dark_theme(self, value: int | None = None) -> 
None:
         else:
             app.settings.set("dark_theme", value)
 
-        if settings is None:
-            return
+        adw_style_manager = Adw.StyleManager.get_default()
         if value == Theme.SYSTEM:
             if self._system_style.prefer_dark is None:
-                settings.reset_property("gtk-application-prefer-dark-theme")
+                adw_style_manager.set_color_scheme(Adw.ColorScheme.DEFAULT)
                 return
+
             value = self._system_style.prefer_dark
-        settings.set_property("gtk-application-prefer-dark-theme", bool(value))
+
+        if value:
+            adw_style_manager.set_color_scheme(Adw.ColorScheme.FORCE_DARK)
+        else:
+            adw_style_manager.set_color_scheme(Adw.ColorScheme.FORCE_LIGHT)
 
     def reload_css(self) -> None:
         self._load_css()



View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/31fe7063bc1d75e4ccb848da71a4b7fa4bcfe095

-- 
View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/31fe7063bc1d75e4ccb848da71a4b7fa4bcfe095
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]

Reply via email to