diff --git a/gtk2_ardour/session_archive_dialog.cc b/gtk2_ardour/session_archive_dialog.cc index 361b176a84..6f98ce594f 100644 --- a/gtk2_ardour/session_archive_dialog.cc +++ b/gtk2_ardour/session_archive_dialog.cc @@ -230,10 +230,20 @@ SessionArchiveDialog::set_compression_level (PBD::FileArchive::CompressionLevel } void -SessionArchiveDialog::update_progress_gui (float p) +SessionArchiveDialog::on_response (int response_id) { set_response_sensitive (RESPONSE_OK, false); - set_response_sensitive (RESPONSE_CANCEL, false); + if (response_id != Gtk::RESPONSE_OK) { + set_response_sensitive (RESPONSE_CANCEL, false); + cancel (); + } + Gtk::Dialog::on_response (response_id); +} + +void +SessionArchiveDialog::update_progress_gui (float p) +{ + progress_bar.show (); if (p < 0) { progress_bar.set_text (_("Archiving Session")); diff --git a/gtk2_ardour/session_archive_dialog.h b/gtk2_ardour/session_archive_dialog.h index cb05a538b0..ee316b7acc 100644 --- a/gtk2_ardour/session_archive_dialog.h +++ b/gtk2_ardour/session_archive_dialog.h @@ -48,9 +48,8 @@ public: void set_compression_level (PBD::FileArchive::CompressionLevel); void set_only_used_sources (bool); - void on_response (int response_id) { - Gtk::Dialog::on_response (response_id); - } +protected: + void on_response (int); private: Gtk::FileChooserButton target_folder_selector;