Prevent endless read of silent files
[ardour.git] / gtk2_ardour / interthread_progress_window.cc
index e63bf629a9e4d012b27ab41dbe0c28503f948d11..eb32d3e8faac27f6a144fcf7bf322090c3b033fe 100644 (file)
@@ -22,7 +22,7 @@
 #include "gtkmm2ext/utils.h"
 #include "ardour/import_status.h"
 #include "interthread_progress_window.h"
-#include "i18n.h"
+#include "pbd/i18n.h"
 
 using namespace std;
 using namespace Gtk;
@@ -35,6 +35,8 @@ InterthreadProgressWindow::InterthreadProgressWindow (ARDOUR::InterThreadInfo* i
        : ArdourDialog (t, true)
        , _interthread_info (i)
 {
+       _interthread_info->cancel = false;
+
        _bar.set_orientation (Gtk::PROGRESS_LEFT_TO_RIGHT);
 
        set_border_width (12);
@@ -50,11 +52,19 @@ InterthreadProgressWindow::InterthreadProgressWindow (ARDOUR::InterThreadInfo* i
 
        set_default_size (200, 100);
        show_all ();
-        hide ();
 
        Glib::signal_timeout().connect (sigc::mem_fun (*this, &InterthreadProgressWindow::update), 100);
 }
 
+void
+InterthreadProgressWindow::on_hide ()
+{
+       if (_interthread_info && !_interthread_info->done) {
+               //catch user pressing 'esc' or WM close
+               _interthread_info->cancel = true;
+       }
+}
+
 void
 InterthreadProgressWindow::cancel_clicked ()
 {