summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2018-10-07 12:57:56 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2018-10-07 12:57:56 -0400
commit8b1c8bb51137c13fb052b685b02b6e8130d6a668 (patch)
tree48a8319e340ac89604e5088c76365c3c249c3113
parentad4dc4460d25fb5cef3bda2fd3f4fcaab0b5ff5f (diff)
use C++, dammit
-rw-r--r--gtk2_ardour/transport_masters_dialog.cc11
-rw-r--r--gtk2_ardour/transport_masters_dialog.h5
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<ARDOUR::TransportMaster> old_master, boost::shared_ptr<ARDOUR::TransportMaster> new_master);
void add_master ();
+
+ public:
+ bool idle_remove (Row*);
};
class TransportMastersWindow : public ArdourWindow