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]