From c645767dbc39db5b65b98e48db22f718f7832d46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Danielle=20For=C3=A9?= Date: Thu, 4 Dec 2025 09:09:08 -0800 Subject: [PATCH] Appearance: don't set dark pref, dry loading provider --- src/Services/Appearance.vala | 34 +++++++++++++--------------------- 1 file changed, 13 insertions(+), 21 deletions(-) diff --git a/src/Services/Appearance.vala b/src/Services/Appearance.vala index 1089a3a5..b079c050 100644 --- a/src/Services/Appearance.vala +++ b/src/Services/Appearance.vala @@ -4,34 +4,26 @@ */ public class Monitor.Appearance : Object { - public static void set_prefered_style () { - var granite_settings = Granite.Settings.get_default (); - var gtk_settings = Gtk.Settings.get_default (); + private static Gtk.CssProvider provider; - bool is_dark = granite_settings.prefers_color_scheme == Granite.Settings.ColorScheme.DARK; - gtk_settings.gtk_application_prefer_dark_theme = is_dark; + public static void set_prefered_style () { + provider = new Gtk.CssProvider (); + Gtk.StyleContext.add_provider_for_display (Gdk.Display.get_default (), provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); + var granite_settings = Granite.Settings.get_default (); + update_style_provider (granite_settings.prefers_color_scheme); - var provider = new Gtk.CssProvider (); + // We listen to changes in Granite.Settings and update our app if the user changes their preference + granite_settings.notify["prefers-color-scheme"].connect (() => { + update_style_provider (granite_settings.prefers_color_scheme); + }); + } - if (is_dark) { + private static void update_style_provider (Granite.Settings.ColorScheme color_scheme) { + if (color_scheme == DARK) { provider.load_from_resource ("/io/elementary/monitor/monitor-dark.css"); } else { provider.load_from_resource ("/io/elementary/monitor/monitor-light.css"); } - - Gtk.StyleContext.add_provider_for_display (Gdk.Display.get_default (), provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); - - // We listen to changes in Granite.Settings and update our app if the user changes their preference - granite_settings.notify["prefers-color-scheme"].connect (() => { - is_dark = granite_settings.prefers_color_scheme == Granite.Settings.ColorScheme.DARK; - gtk_settings.gtk_application_prefer_dark_theme = is_dark; - - if (is_dark) { - provider.load_from_resource ("/io/elementary/monitor/monitor-dark.css"); - } else { - provider.load_from_resource ("/io/elementary/monitor/monitor-light.css"); - } - }); } }