X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2FLibCecTray%2Fui%2FCECTray.cs;h=740033b386539f65670bf317872fbe0116c04fa1;hb=a1b14f2ef82d00e8c0e53fae50ece4ea9cdcdb2c;hp=ab046623d1cdc9e91c426a024dcb17578f3d5ca2;hpb=eb9465c95e465d884ad4db3b39ba207913936cea;p=deb_libcec.git diff --git a/src/LibCecTray/ui/CECTray.cs b/src/LibCecTray/ui/CECTray.cs index ab04662..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(); } @@ -175,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)) { @@ -592,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; + } }