diff options
Diffstat (limited to 'gtk2_ardour/io_selector.cc')
-rw-r--r-- | gtk2_ardour/io_selector.cc | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/gtk2_ardour/io_selector.cc b/gtk2_ardour/io_selector.cc index 963b03ba3f..430714f1ae 100644 --- a/gtk2_ardour/io_selector.cc +++ b/gtk2_ardour/io_selector.cc @@ -165,9 +165,18 @@ IOSelectorWindow::IOSelectorWindow (ARDOUR::Session& session, boost::shared_ptr< show_all (); - signal_delete_event().connect (bind (sigc::ptr_fun (just_hide_it), this)); + signal_delete_event().connect (mem_fun (*this, &IOSelectorWindow::wm_delete)); } +bool +IOSelectorWindow::wm_delete (GdkEventAny* /*event*/) +{ + _selector.Finished (IOSelector::Accepted); + hide (); + return true; +} + + void IOSelectorWindow::on_map () { @@ -256,11 +265,18 @@ PortInsertWindow::PortInsertWindow (ARDOUR::Session& sess, boost::shared_ptr<ARD ok_button.signal_clicked().connect (mem_fun (*this, &PortInsertWindow::accept)); cancel_button.signal_clicked().connect (mem_fun (*this, &PortInsertWindow::cancel)); - signal_delete_event().connect (bind (sigc::ptr_fun (just_hide_it), reinterpret_cast<Window *> (this))); - + signal_delete_event().connect (mem_fun (*this, &PortInsertWindow::wm_delete), false); + going_away_connection = pi->GoingAway.connect (mem_fun (*this, &PortInsertWindow::plugin_going_away)); } +bool +PortInsertWindow::wm_delete (GdkEventAny* /*event*/) +{ + accept (); + return true; +} + void PortInsertWindow::plugin_going_away () { |