From 8f4c571f85b17d0de124836426f892c72b1dc3cd Mon Sep 17 00:00:00 2001 From: sr55 Date: Sat, 28 Nov 2009 23:45:51 +0000 Subject: [PATCH] WinGui: - Cleanly close the ActivityWindow so that HandBrake.exe does not remain active after the main application window has been closed. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2990 b64f7644-9d1e-0410-96f1-a4d463321fa5 --- win/C#/frmActivityWindow.cs | 17 +++++++++++++---- win/C#/frmMain.cs | 2 +- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/win/C#/frmActivityWindow.cs b/win/C#/frmActivityWindow.cs index f909abcd1..af7b62107 100644 --- a/win/C#/frmActivityWindow.cs +++ b/win/C#/frmActivityWindow.cs @@ -24,6 +24,8 @@ namespace Handbrake private static int _position; private static string _lastMode; private static string _currentMode; + private Thread monitor; + private Boolean kilLThread; public frmActivityWindow() { @@ -32,7 +34,9 @@ namespace Handbrake private void NewActivityWindow_Load(object sender, EventArgs e) { SetScanMode(); - Thread monitor = new Thread(LogMonitor); + monitor = new Thread(LogMonitor); + _position = 0; + kilLThread = false; try { @@ -48,6 +52,9 @@ namespace Handbrake { while (true) { + if (!IsHandleCreated || kilLThread) // break out the thread if the window has been disposed. + break; + // Perform a reset if require. // If we have switched to a different log file, we want to start from the beginning. if (SetLogFile != _lastMode) @@ -70,7 +77,7 @@ namespace Handbrake break; } - Thread.Sleep(1000); + Thread.Sleep(750); } } private StringBuilder ReadFile(string file) @@ -197,7 +204,7 @@ namespace Handbrake { MessageBox.Show("PrintLogHeader(): Exception: \n" + exc); } - + } #region Public @@ -293,8 +300,10 @@ namespace Handbrake protected override void OnClosing(CancelEventArgs e) { + kilLThread = true; + monitor.Join(); e.Cancel = true; - this.Hide(); + this.Dispose(); base.OnClosing(e); } } diff --git a/win/C#/frmMain.cs b/win/C#/frmMain.cs index d74d8ef08..58ad36061 100644 --- a/win/C#/frmMain.cs +++ b/win/C#/frmMain.cs @@ -800,7 +800,7 @@ namespace Handbrake } private void btn_ActivityWindow_Click(object sender, EventArgs e) { - if (ActivityWindow == null) + if (ActivityWindow == null || !ActivityWindow.IsHandleCreated) ActivityWindow = new frmActivityWindow(); if (encodeQueue.isEncoding) -- 2.40.0