|
4 | 4 | */ |
5 | 5 |
|
6 | 6 | public class Monitor.Appearance : Object { |
7 | | - public static void set_prefered_style () { |
8 | | - var granite_settings = Granite.Settings.get_default (); |
9 | | - var gtk_settings = Gtk.Settings.get_default (); |
| 7 | + private static Gtk.CssProvider provider; |
10 | 8 |
|
11 | | - bool is_dark = granite_settings.prefers_color_scheme == Granite.Settings.ColorScheme.DARK; |
12 | | - gtk_settings.gtk_application_prefer_dark_theme = is_dark; |
| 9 | + public static void set_prefered_style () { |
| 10 | + provider = new Gtk.CssProvider (); |
| 11 | + Gtk.StyleContext.add_provider_for_display (Gdk.Display.get_default (), provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); |
13 | 12 |
|
| 13 | + var granite_settings = Granite.Settings.get_default (); |
| 14 | + update_style_provider (granite_settings.prefers_color_scheme); |
14 | 15 |
|
15 | | - var provider = new Gtk.CssProvider (); |
| 16 | + // We listen to changes in Granite.Settings and update our app if the user changes their preference |
| 17 | + granite_settings.notify["prefers-color-scheme"].connect (() => { |
| 18 | + update_style_provider (granite_settings.prefers_color_scheme); |
| 19 | + }); |
| 20 | + } |
16 | 21 |
|
17 | | - if (is_dark) { |
| 22 | + private static void update_style_provider (Granite.Settings.ColorScheme color_scheme) { |
| 23 | + if (color_scheme == DARK) { |
18 | 24 | provider.load_from_resource ("/io/elementary/monitor/monitor-dark.css"); |
19 | 25 | } else { |
20 | 26 | provider.load_from_resource ("/io/elementary/monitor/monitor-light.css"); |
21 | 27 | } |
22 | | - |
23 | | - Gtk.StyleContext.add_provider_for_display (Gdk.Display.get_default (), provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); |
24 | | - |
25 | | - // We listen to changes in Granite.Settings and update our app if the user changes their preference |
26 | | - granite_settings.notify["prefers-color-scheme"].connect (() => { |
27 | | - is_dark = granite_settings.prefers_color_scheme == Granite.Settings.ColorScheme.DARK; |
28 | | - gtk_settings.gtk_application_prefer_dark_theme = is_dark; |
29 | | - |
30 | | - if (is_dark) { |
31 | | - provider.load_from_resource ("/io/elementary/monitor/monitor-dark.css"); |
32 | | - } else { |
33 | | - provider.load_from_resource ("/io/elementary/monitor/monitor-light.css"); |
34 | | - } |
35 | | - }); |
36 | 28 | } |
37 | 29 | } |
0 commit comments