From b1ffb62cf2244c26f46bd1baaa333b5d5941d9d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Danielle=20For=C3=A9?= Date: Fri, 3 Oct 2025 10:20:26 -0700 Subject: [PATCH 1/4] Application: hold or release with indicator state --- src/MainWindow.vala | 7 ++----- src/Monitor.vala | 12 ++++++++++++ 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/MainWindow.vala b/src/MainWindow.vala index 42aaf46d..2575e021 100644 --- a/src/MainWindow.vala +++ b/src/MainWindow.vala @@ -116,14 +116,11 @@ public class Monitor.MainWindow : Hdy.ApplicationWindow { MonitorApp.settings.set_boolean ("is-maximized", this.is_maximized); - if (MonitorApp.settings.get_boolean ("indicator-state")) { - this.hide_on_delete (); - } else { + if (!MonitorApp.settings.get_boolean ("indicator-state")) { dbusserver.indicator_state (false); - application.quit (); } - return true; + return Gdk.EVENT_PROPAGATE; }); dbusserver.indicator_state (MonitorApp.settings.get_boolean ("indicator-state")); diff --git a/src/Monitor.vala b/src/Monitor.vala index dc80381c..e1af8dc2 100644 --- a/src/Monitor.vala +++ b/src/Monitor.vala @@ -41,6 +41,18 @@ namespace Monitor { // Controls the direction of the sort indicators Gtk.Settings.get_default ().set ("gtk-alternative-sort-arrows", true, null); + if (settings.get_boolean ("indicator-state")) { + hold (); + } + + settings.notify["indicator-state"].connect (() => { + if (settings.get_boolean ("indicator-state")) { + hold (); + } else { + release (); + } + }); + var quit_action = new SimpleAction ("quit", null); add_action (quit_action); quit_action.activate.connect (() => { From 2ab8d311659b327c7dec9e81cb2933a2c306e597 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Danielle=20For=C3=A9?= Date: Fri, 3 Oct 2025 10:43:24 -0700 Subject: [PATCH 2/4] Update src/Monitor.vala Co-authored-by: Leo --- src/Monitor.vala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Monitor.vala b/src/Monitor.vala index 15615001..fc2a252f 100644 --- a/src/Monitor.vala +++ b/src/Monitor.vala @@ -45,7 +45,7 @@ namespace Monitor { hold (); } - settings.notify["indicator-state"].connect (() => { + settings.changed["indicator-state"].connect (() => { if (settings.get_boolean ("indicator-state")) { hold (); } else { From 7cd57e918ce61f7bf2ccb952773d8ec52d32986a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Danielle=20For=C3=A9?= Date: Fri, 3 Oct 2025 10:52:12 -0700 Subject: [PATCH 3/4] track held state --- src/Monitor.vala | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Monitor.vala b/src/Monitor.vala index fc2a252f..eed3a1fd 100644 --- a/src/Monitor.vala +++ b/src/Monitor.vala @@ -9,6 +9,7 @@ namespace Monitor { private MainWindow window = null; public string[] args; + private bool held = false; private static bool start_in_background = false; private static bool status_background = false; private const GLib.OptionEntry[] CMD_OPTIONS = { @@ -42,13 +43,15 @@ namespace Monitor { Gtk.Settings.get_default ().set ("gtk-alternative-sort-arrows", true, null); if (settings.get_boolean ("indicator-state")) { + held = true; hold (); } settings.changed["indicator-state"].connect (() => { if (settings.get_boolean ("indicator-state")) { + held = true; hold (); - } else { + } else if (held){ release (); } }); From db622eeb3f9d933b934b73067901a322f679fed4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Danielle=20For=C3=A9?= Date: Fri, 3 Oct 2025 10:56:48 -0700 Subject: [PATCH 4/4] lint --- src/Monitor.vala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Monitor.vala b/src/Monitor.vala index eed3a1fd..b4b8155e 100644 --- a/src/Monitor.vala +++ b/src/Monitor.vala @@ -51,7 +51,7 @@ namespace Monitor { if (settings.get_boolean ("indicator-state")) { held = true; hold (); - } else if (held){ + } else if (held) { release (); } });