X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2FLibCecTray%2Fui%2FCECTray.cs;h=740033b386539f65670bf317872fbe0116c04fa1;hb=a1b14f2ef82d00e8c0e53fae50ece4ea9cdcdb2c;hp=1b2897b1b4822bd5778037fc8b50582d3102ad03;hpb=07224bf34475a5bcabc52d364ae7b795541346be;p=deb_libcec.git diff --git a/src/LibCecTray/ui/CECTray.cs b/src/LibCecTray/ui/CECTray.cs index 1b2897b..740033b 100644 --- a/src/LibCecTray/ui/CECTray.cs +++ b/src/LibCecTray/ui/CECTray.cs @@ -41,22 +41,10 @@ using LibCECTray.settings; using Microsoft.Win32; using System.Security.Permissions; using System.Runtime.InteropServices; +using System.Threading; namespace LibCECTray.ui { - /// - /// The tab pages in this application - /// - internal enum ConfigTab - { - Configuration, - KeyConfiguration, - Tester, - Log, - WMC, - XBMC - } - /// /// Main LibCecTray GUI /// @@ -79,6 +67,7 @@ namespace LibCECTray.ui public void OnSessionEnding(object sender, SessionEndingEventArgs e) { + Controller.CECActions.SuppressUpdates = true; Controller.Close(); } @@ -128,8 +117,9 @@ namespace LibCECTray.ui switch (pwr.Data) { case 0: - OnWake(); - return; + // do _not_ wake the pc when away mode is deactivated + //OnWake(); + //return; case 1: OnSleep(); return; @@ -174,7 +164,9 @@ namespace LibCECTray.ui Hide(); if (disposing) { - Controller.Close(); + Controller.CECActions.SuppressUpdates = true; + AsyncDisconnect dc = new AsyncDisconnect(Controller); + (new Thread(dc.Process)).Start(); } if (disposing && (components != null)) { @@ -591,4 +583,32 @@ namespace LibCECTray.ui Controller.DisplayDialog(appConfig, false); } } + + /// + /// The tab pages in this application + /// + internal enum ConfigTab + { + Configuration, + KeyConfiguration, + Tester, + Log, + WMC, + XBMC + } + + class AsyncDisconnect + { + public AsyncDisconnect(CECController controller) + { + _controller = controller; + } + + public void Process() + { + _controller.Close(); + } + + private CECController _controller; + } }