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 ab046623d1cdc9e91c426a024dcb17578f3d5ca2..197ce32818c0d7537d2349f2f4102ce4b58f0854 100644 (file)
@@ -79,6 +79,7 @@ namespace LibCECTray.ui
 
     public void OnSessionEnding(object sender, SessionEndingEventArgs e)
     {
+      Controller.CECActions.SuppressUpdates = true;
       Controller.Close();
     }
 
@@ -173,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))
@@ -309,6 +312,9 @@ namespace LibCECTray.ui
     delegate void UpdateLogCallback();
     private void UpdateLog()
     {
+      if (SuppressLogUpdates)
+        return;
+
       if (tbLog.InvokeRequired)
       {
         UpdateLogCallback d = UpdateLog;
@@ -566,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;