diff --git a/app/Program.cs b/app/Program.cs index b068f834..662ac677 100644 --- a/app/Program.cs +++ b/app/Program.cs @@ -213,13 +213,13 @@ namespace GHelper SetAutoModes(true); } - public static void SettingsToggle(string action = "", bool checkForFocus = true) + public static void SettingsToggle(string action = "", bool checkForFocus = true, bool trayClick = false) { if (settingsForm.Visible) { // If helper window is not on top, this just focuses on the app again // Pressing the ghelper button again will hide the app - if (checkForFocus && !settingsForm.HasAnyFocus()) + if (checkForFocus && !settingsForm.HasAnyFocus(trayClick)) { settingsForm.ShowAll(); } @@ -275,7 +275,7 @@ namespace GHelper static void TrayIcon_MouseClick(object? sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) - SettingsToggle(); + SettingsToggle(trayClick: true); } diff --git a/app/Settings.cs b/app/Settings.cs index 8851f94e..b126d5bc 100644 --- a/app/Settings.cs +++ b/app/Settings.cs @@ -882,14 +882,14 @@ namespace GHelper /// Check if any of fans, keyboard, update, or itself has focus /// /// Focus state - public bool HasAnyFocus() + public bool HasAnyFocus(bool lostFocusCheck = false) { return (fansForm != null && fansForm.ContainsFocus) || (extraForm != null && extraForm.ContainsFocus) || (updatesForm != null && updatesForm.ContainsFocus) || (matrixForm != null && matrixForm.ContainsFocus) || this.ContainsFocus || - Math.Abs(DateTimeOffset.Now.ToUnixTimeMilliseconds() - lastLostFocus) < 300; + (lostFocusCheck && Math.Abs(DateTimeOffset.Now.ToUnixTimeMilliseconds() - lastLostFocus) < 300); } private void SettingsForm_FormClosing(object? sender, FormClosingEventArgs e)