[dconf-editor: 1/5] Support dark mode




commit 753ed8cac3be17cf9dd041e21a63e040f92c3811
Author: Maximiliano Sandoval R <msandova protonmail com>
Date:   Tue Jul 12 19:11:46 2022 +0200

    Support dark mode

 editor/dconf-editor.vala        |  4 ++++
 editor/meson.build              |  1 +
 editor/night-light-monitor.vala | 14 +++++++-------
 3 files changed, 12 insertions(+), 7 deletions(-)
---
diff --git a/editor/dconf-editor.vala b/editor/dconf-editor.vala
index 55442a16..fd0823bc 100644
--- a/editor/dconf-editor.vala
+++ b/editor/dconf-editor.vala
@@ -330,9 +330,13 @@ private class ConfigurationEditor : Gtk.Application, BaseApplication
     {
         base.startup ();
 
+        Hdy.init ();
+
         Environment.set_application_name (PROGRAM_NAME);
         Gtk.Window.set_default_icon_name ("ca.desrt.dconf-editor");
 
+        Hdy.StyleManager.get_default ().set_color_scheme (PREFER_LIGHT);
+
         add_action_entries (action_entries, this);
         set_accels_for_action ("bw.toggle-bookmark",        {        "<Primary>b",
                                                               "<Shift><Primary>b"       });
diff --git a/editor/meson.build b/editor/meson.build
index 0eb3bb1a..219ead81 100644
--- a/editor/meson.build
+++ b/editor/meson.build
@@ -162,6 +162,7 @@ deps = [
   dependency('glib-2.0', version: '>= 2.56.0'),
   dependency('gmodule-2.0'),
   dependency('gtk+-3.0', version: '>= 3.22.27'),
+  dependency('libhandy-1', version: '>= 1.6'),
   valac.find_library('config', dirs: meson.current_source_dir()),
   valac.find_library('posix')
 ]
diff --git a/editor/night-light-monitor.vala b/editor/night-light-monitor.vala
index 034d80f7..f82cc2b9 100644
--- a/editor/night-light-monitor.vala
+++ b/editor/night-light-monitor.vala
@@ -208,15 +208,15 @@ private class NightLightMonitor : Object
     }
     private static bool _set_dark_theme_real (bool night_mode)
     {
-        Gtk.Settings? gtk_settings = Gtk.Settings.get_default ();
-        if (gtk_settings == null)
+        Hdy.StyleManager style_manager = Hdy.StyleManager.get_default ();
+
+        if (night_mode != style_manager.get_dark ())
         {
-            warning (warning_get_gtksettings);
-            return false;
+            if (night_mode)
+                style_manager.set_color_scheme (FORCE_DARK);
+            else
+                style_manager.set_color_scheme (PREFER_LIGHT);
         }
-
-        if (night_mode != ((!) gtk_settings).gtk_application_prefer_dark_theme)
-            ((!) gtk_settings).@set ("gtk-application-prefer-dark-theme", night_mode);
         return true;
     }
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]