From 1ce52c801d1a64c0450928c4e8b64e65381e4fa3 Mon Sep 17 00:00:00 2001 From: Kamil118 Date: Thu, 27 Aug 2026 22:25:42 +0200 Subject: [PATCH] updated readme, and slightly improved resilance of window closing, changed relegation of duty for disabling paret window from manager to countdown window. --- GoToSleep/CountdownForm.Designer.cs | 1 + GoToSleep/CountdownForm.cs | 16 ++++++++-------- GoToSleep/SystemPowerManager.cs | 4 ---- README.md | 4 +++- img/program.png | Bin 0 -> 9534 bytes 5 files changed, 12 insertions(+), 13 deletions(-) create mode 100644 img/program.png diff --git a/GoToSleep/CountdownForm.Designer.cs b/GoToSleep/CountdownForm.Designer.cs index ffa4c33..79a80fe 100644 --- a/GoToSleep/CountdownForm.Designer.cs +++ b/GoToSleep/CountdownForm.Designer.cs @@ -160,6 +160,7 @@ MinimumSize = new Size(500, 135); Name = "CountdownForm"; Text = "CountdownForm"; + Shown += CountdownForm_Shown; Resize += onResize; tableLayoutPanel1.ResumeLayout(false); tableLayoutPanel1.PerformLayout(); diff --git a/GoToSleep/CountdownForm.cs b/GoToSleep/CountdownForm.cs index f695fb2..8ed1ca7 100644 --- a/GoToSleep/CountdownForm.cs +++ b/GoToSleep/CountdownForm.cs @@ -13,7 +13,7 @@ namespace GoToSleep { public partial class CountdownForm : Form { - public bool active = true; + public volatile bool active = true; private PowerDownData task; private Thread taskThread; @@ -50,6 +50,7 @@ namespace GoToSleep trayIcon.Text = task.actionType.ToString() + "\n" + countdown.Text; } + string getTimerText() { var timeRemaining = task.when - DateTime.Now; @@ -116,16 +117,10 @@ namespace GoToSleep protected override void OnFormClosing(FormClosingEventArgs e) { - if (e.CloseReason == CloseReason.None && this.Visible == false) - { - // the window has been minimzed to tray, do not destroy it - e.Cancel = true; - return; - } parent.Enabled = true; trayIcon.Visible = false; - base.OnFormClosing(e); active = false; + base.OnFormClosing(e); } private void countdown_Click(object sender, EventArgs e) @@ -175,5 +170,10 @@ namespace GoToSleep trayIcon.Visible = false; cancel_Click(sender, e); } + + private void CountdownForm_Shown(object sender, EventArgs e) + { + parent.Enabled = false; + } } } diff --git a/GoToSleep/SystemPowerManager.cs b/GoToSleep/SystemPowerManager.cs index f5cfc4e..1eb57b4 100644 --- a/GoToSleep/SystemPowerManager.cs +++ b/GoToSleep/SystemPowerManager.cs @@ -143,7 +143,6 @@ namespace GoToSleep progressPopup = new CountdownForm(PowerDownData.Shutdown(target), parentForm); progressPopup.Show(); - parentForm.Enabled = false; } public void suspend(string timeString) @@ -165,7 +164,6 @@ namespace GoToSleep progressPopup = new CountdownForm(PowerDownData.Suspend(target), parentForm); progressPopup.Show(); - parentForm.Enabled = false; } public void hibernate(string timeString) @@ -187,7 +185,6 @@ namespace GoToSleep progressPopup = new CountdownForm(PowerDownData.Hibernate(target), parentForm); progressPopup.Show(); - parentForm.Enabled = false; } public void restart(string timeString) @@ -209,7 +206,6 @@ namespace GoToSleep progressPopup = new CountdownForm(PowerDownData.Restart(target), parentForm); progressPopup.Show(); - parentForm.Enabled = false; } } } diff --git a/README.md b/README.md index 6d117fd..226227f 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,11 @@ # GoToSleep +![Screenshot of working application](./img/program.png) + Simple utility to schedule automatic system suspension/shutdown using natural language Utilizes Microsoft.Recognizers.Text to process the natural text input and generate user-friendly countdown popup. * [Download Latest x64 Standalone Release (50 MB)](https://github.com/Kamil118/GoToSleep/releases/latest/download/GoToSleep-x64_STANDALONE.exe) (Probably what you are looking for) -* [Download Latest x64 trimmed release (4.5 MB)](https://github.com/Kamil118/GoToSleep/releases/latest/download/GoToSleep-x64_dotnet.exe) (Requires .NET 10 runtime installed) \ No newline at end of file +* [Download Latest x64 trimmed release (4.5 MB)](https://github.com/Kamil118/GoToSleep/releases/download/v1.0.9/GoToSleep-x64-dotnet.exe) (Requires .NET 10 runtime installed) \ No newline at end of file diff --git a/img/program.png b/img/program.png new file mode 100644 index 0000000000000000000000000000000000000000..808ebb1d0bb29b8bbfc8d37e08dfbf32da8924d6 GIT binary patch literal 9534 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 H@bo_b;)U?` literal 0 HcmV?d00001