From 92beb198917bd20306a7e7d914326da9b1b69d3b Mon Sep 17 00:00:00 2001 From: Jeremy Wootten Date: Fri, 17 Feb 2023 18:11:00 +0000 Subject: [PATCH 1/3] Do set prefer-dark-style on startup if follow-system-style true --- src/MainWindow.vala | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/MainWindow.vala b/src/MainWindow.vala index 6933baf0e2..4f440cd031 100644 --- a/src/MainWindow.vala +++ b/src/MainWindow.vala @@ -238,8 +238,11 @@ namespace Scratch { default_width = rect.width; default_height = rect.height; - var gtk_settings = Gtk.Settings.get_default (); - gtk_settings.gtk_application_prefer_dark_theme = Scratch.settings.get_boolean ("prefer-dark-style"); + + if (!Scratch.settings.get_boolean ("follow-system-style")) { + var gtk_settings = Gtk.Settings.get_default (); + gtk_settings.gtk_application_prefer_dark_theme = Scratch.settings.get_boolean ("prefer-dark-style"); + } clipboard = Gtk.Clipboard.get_for_display (get_display (), Gdk.SELECTION_CLIPBOARD); From 522042db046f5c4ca18ad09acab8daad2bb24d45 Mon Sep 17 00:00:00 2001 From: Jeremy Wootten Date: Fri, 17 Feb 2023 18:40:43 +0000 Subject: [PATCH 2/3] Update style with no docs when follow-system-style changes --- src/MainWindow.vala | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/MainWindow.vala b/src/MainWindow.vala index 4f440cd031..e82b46d80a 100644 --- a/src/MainWindow.vala +++ b/src/MainWindow.vala @@ -238,11 +238,10 @@ namespace Scratch { default_width = rect.width; default_height = rect.height; - - if (!Scratch.settings.get_boolean ("follow-system-style")) { - var gtk_settings = Gtk.Settings.get_default (); - gtk_settings.gtk_application_prefer_dark_theme = Scratch.settings.get_boolean ("prefer-dark-style"); - } + update_style (); + Scratch.settings.changed["follow-system-style"].connect (() => { + update_style (); + }); clipboard = Gtk.Clipboard.get_for_display (get_display (), Gdk.SELECTION_CLIPBOARD); @@ -299,6 +298,16 @@ namespace Scratch { Unix.signal_add (Posix.Signal.TERM, quit_source_func, Priority.HIGH); } + private void update_style () { + var gtk_settings = Gtk.Settings.get_default (); + if (Scratch.settings.get_boolean ("follow-system-style")) { + var system_prefers_dark = Granite.Settings.get_default ().prefers_color_scheme == Granite.Settings.ColorScheme.DARK; + gtk_settings.gtk_application_prefer_dark_theme = system_prefers_dark; + } else { + gtk_settings.gtk_application_prefer_dark_theme = Scratch.settings.get_boolean ("prefer-dark-style"); + } + } + private void update_toolbar_button (string name, bool new_state) { switch (name) { case ACTION_SHOW_FIND: From 6c65509b2cab48b92e87b46de6a7e62641eccb73 Mon Sep 17 00:00:00 2001 From: Jeremy Wootten Date: Fri, 17 Feb 2023 18:47:44 +0000 Subject: [PATCH 3/3] SourceView no longer controls gtk_application_prefer_dark_theme setting --- src/Widgets/SourceView.vala | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/Widgets/SourceView.vala b/src/Widgets/SourceView.vala index 9bfabf0e69..9c7c94a2af 100644 --- a/src/Widgets/SourceView.vala +++ b/src/Widgets/SourceView.vala @@ -301,15 +301,12 @@ namespace Scratch.Widgets { var gtk_settings = Gtk.Settings.get_default (); if (settings.get_boolean ("follow-system-style")) { var system_prefers_dark = Granite.Settings.get_default ().prefers_color_scheme == Granite.Settings.ColorScheme.DARK; - gtk_settings.gtk_application_prefer_dark_theme = system_prefers_dark; - if (system_prefers_dark) { source_buffer.style_scheme = style_scheme_manager.get_scheme ("elementary-dark"); } else { source_buffer.style_scheme = style_scheme_manager.get_scheme ("elementary-light"); } } else { - gtk_settings.gtk_application_prefer_dark_theme = settings.get_boolean ("prefer-dark-style"); var scheme = style_scheme_manager.get_scheme (Scratch.settings.get_string ("style-scheme")); source_buffer.style_scheme = scheme ?? style_scheme_manager.get_scheme ("classic"); }