From 8b1c8bb51137c13fb052b685b02b6e8130d6a668 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Sun, 7 Oct 2018 12:57:56 -0400 Subject: [PATCH] use C++, dammit --- gtk2_ardour/transport_masters_dialog.cc | 11 ++++------- gtk2_ardour/transport_masters_dialog.h | 5 +++-- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/gtk2_ardour/transport_masters_dialog.cc b/gtk2_ardour/transport_masters_dialog.cc index 67e9bba80b..33d0ce5ca4 100644 --- a/gtk2_ardour/transport_masters_dialog.cc +++ b/gtk2_ardour/transport_masters_dialog.cc @@ -213,7 +213,6 @@ TransportMastersWidget::rebuild () table.show_all (); - // r->label_box.set_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK); r->label_box.signal_button_press_event().connect (sigc::mem_fun (*r, &TransportMastersWidget::Row::name_press)); r->port_combo.signal_changed().connect (sigc::mem_fun (*r, &TransportMastersWidget::Row::port_choice_changed)); r->use_button.signal_toggled().connect (sigc::mem_fun (*r, &TransportMastersWidget::Row::use_button_toggled)); @@ -267,13 +266,11 @@ TransportMastersWidget::Row::name_press (GdkEventButton* ev) return false; } -gboolean -TransportMastersWidget::Row::_idle_remove (gpointer arg) +bool +TransportMastersWidget::idle_remove (TransportMastersWidget::Row* row) { - TransportMastersWidget::Row* row = (TransportMastersWidget::Row*) arg; TransportMasterManager::instance().remove (row->tm->name()); - - return FALSE; /* do not call again */ + return false; } void @@ -282,7 +279,7 @@ TransportMastersWidget::Row::remove_clicked () /* have to do this via an idle callback, because it will destroy the widget from which this callback was initiated. */ - g_idle_add_full (G_PRIORITY_HIGH_IDLE + 10, _idle_remove, this, NULL); + Glib::signal_idle().connect (sigc::bind (sigc::mem_fun (parent, &TransportMastersWidget::idle_remove), this)); } void diff --git a/gtk2_ardour/transport_masters_dialog.h b/gtk2_ardour/transport_masters_dialog.h index 1d20dfee15..0030493f47 100644 --- a/gtk2_ardour/transport_masters_dialog.h +++ b/gtk2_ardour/transport_masters_dialog.h @@ -126,8 +126,6 @@ class TransportMastersWidget : public Gtk::VBox, public ARDOUR::SessionHandlePtr void prop_change (PBD::PropertyChange); void remove_clicked (); - static gboolean _idle_remove (gpointer arg); - bool name_press (GdkEventButton*); void name_edited (std::string, int); @@ -149,6 +147,9 @@ class TransportMastersWidget : public Gtk::VBox, public ARDOUR::SessionHandlePtr void rebuild (); void current_changed (boost::shared_ptr old_master, boost::shared_ptr new_master); void add_master (); + + public: + bool idle_remove (Row*); }; class TransportMastersWindow : public ArdourWindow -- 2.30.2