don't lock up on exit in cectray when receiving log messages while the window is...
[deb_libcec.git] / src / LibCecTray / ui / CECTray.cs
index 1b2897b1b4822bd5778037fc8b50582d3102ad03..197ce32818c0d7537d2349f2f4102ce4b58f0854 100644 (file)
@@ -79,6 +79,7 @@ namespace LibCECTray.ui
 
     public void OnSessionEnding(object sender, SessionEndingEventArgs e)
     {
+      Controller.CECActions.SuppressUpdates = true;
       Controller.Close();
     }
 
@@ -128,8 +129,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;
@@ -172,8 +174,10 @@ namespace LibCECTray.ui
     protected override void Dispose(bool disposing)
     {
       Hide();
+      SuppressLogUpdates = true;
       if (disposing)
       {
+        Controller.CECActions.SuppressUpdates = true;
         Controller.Close();
       }
       if (disposing && (components != null))
@@ -308,6 +312,9 @@ namespace LibCECTray.ui
     delegate void UpdateLogCallback();
     private void UpdateLog()
     {
+      if (SuppressLogUpdates)
+        return;
+
       if (tbLog.InvokeRequired)
       {
         UpdateLogCallback d = UpdateLog;
@@ -565,6 +572,7 @@ namespace LibCECTray.ui
     #endregion
 
     #region Class members
+    private bool SuppressLogUpdates = false;
     private ConfigTab _selectedTab = ConfigTab.Configuration;
     private string _log = string.Empty;
     private CECController _controller;