X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=inline;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;
+ }
}