From 25f842df9da8e799f5d85c55b0ce7a610c40eda2 Mon Sep 17 00:00:00 2001 From: IceStormNG Date: Fri, 21 Jul 2023 15:38:26 +0200 Subject: [PATCH] Only touch power settings if the user checks the box. But always disable the changes back to the defaults when the user unchecks it. --- app/Extra.cs | 11 ++++++++++- app/Helpers/ClamshellModeControl.cs | 24 +++++++++++++++++++----- 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/app/Extra.cs b/app/Extra.cs index 44d8f35a..1036be28 100644 --- a/app/Extra.cs +++ b/app/Extra.cs @@ -475,7 +475,16 @@ namespace GHelper { AppConfig.Set("toggle_clamshell_mode", checkAutoToggleClamshellMode.Checked ? 1 : 0); ClamshellModeControl ctrl = new ClamshellModeControl(); - ctrl.ToggleLidAction(); + + if (checkAutoToggleClamshellMode.Checked) + { + ctrl.ToggleLidAction(); + } + else + { + ClamshellModeControl.DisableClamshellMode(); + } + } } } diff --git a/app/Helpers/ClamshellModeControl.cs b/app/Helpers/ClamshellModeControl.cs index b01e86bb..3115a44a 100644 --- a/app/Helpers/ClamshellModeControl.cs +++ b/app/Helpers/ClamshellModeControl.cs @@ -46,17 +46,31 @@ namespace GHelper.Helpers public void ToggleLidAction() { - if (IsInClamshellMode() && IsClamshellEnabled()) + if (!IsClamshellEnabled()) { - PowerNative.SetLidAction(0, true); - Logger.WriteLine("Engaging Clamshell Mode"); + return; + } + + if (IsInClamshellMode()) + { + EnableClamshellMode(); } else { - PowerNative.SetLidAction(1, true); - Logger.WriteLine("Disengaging Clamshell Mode"); + DisableClamshellMode(); } } + public static void DisableClamshellMode() + { + PowerNative.SetLidAction(1, true); + Logger.WriteLine("Disengaging Clamshell Mode"); + } + + public static void EnableClamshellMode() + { + PowerNative.SetLidAction(0, true); + Logger.WriteLine("Engaging Clamshell Mode"); + } public void UnregisterDisplayEvents() {