X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Finterthread_progress_window.cc;h=c74f12914f3d37a62720e16edee0f44d6af56d09;hb=456596bced4a3647cde4613792002142f9fea4d7;hp=96a9b810eb4c433f753e9c27c191f53d02661cb2;hpb=3aa24b222bd8307a1ab9dd0d4094fe6548d7ac1f;p=ardour.git diff --git a/gtk2_ardour/interthread_progress_window.cc b/gtk2_ardour/interthread_progress_window.cc index 96a9b810eb..c74f12914f 100644 --- a/gtk2_ardour/interthread_progress_window.cc +++ b/gtk2_ardour/interthread_progress_window.cc @@ -19,9 +19,10 @@ #include #include +#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; @@ -49,11 +50,21 @@ InterthreadProgressWindow::InterthreadProgressWindow (ARDOUR::InterThreadInfo* i set_default_size (200, 100); show_all (); - hide (); + hide (); + _interthread_info->cancel = false; // override on_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 () { @@ -87,8 +98,7 @@ bool ImportProgressWindow::update () { _cancel_button.set_sensitive (!_import_status->freeze); - std::string op = Glib::Markup::escape_text(_import_status->doing_what); - _label.set_markup ("" + op + ""); + _label.set_markup ("" + Gtkmm2ext::markup_escape_text (_import_status->doing_what) + ""); /* use overall progress for the bar, rather than that for individual files */ _bar.set_fraction ((_import_status->current - 1 + _import_status->progress) / _import_status->total);