diff options
-rw-r--r-- | gtk2_ardour/transport_masters_dialog.cc | 7 | ||||
-rw-r--r-- | libs/ardour/transport_master_manager.cc | 2 |
2 files changed, 5 insertions, 4 deletions
diff --git a/gtk2_ardour/transport_masters_dialog.cc b/gtk2_ardour/transport_masters_dialog.cc index ac2066ceba..027d98964c 100644 --- a/gtk2_ardour/transport_masters_dialog.cc +++ b/gtk2_ardour/transport_masters_dialog.cc @@ -83,6 +83,8 @@ TransportMastersWidget::TransportMastersWidget () table.set_spacings (6); TransportMasterManager::instance().CurrentChanged.connect (current_connection, invalidator (*this), boost::bind (&TransportMastersWidget::current_changed, this, _1, _2), gui_context()); + TransportMasterManager::instance().Added.connect (current_connection, invalidator (*this), boost::bind (&TransportMastersWidget::rebuild, this), gui_context()); + TransportMasterManager::instance().Removed.connect (current_connection, invalidator (*this), boost::bind (&TransportMastersWidget::rebuild, this), gui_context()); rebuild (); } @@ -114,9 +116,7 @@ TransportMastersWidget::current_changed (boost::shared_ptr<TransportMaster> old_ void TransportMastersWidget::add_master () { - if (!TransportMasterManager::instance().add (LTC, "new ltc")) { - rebuild (); - } + TransportMasterManager::instance().add (LTC, "new ltc"); } void @@ -247,6 +247,7 @@ TransportMastersWidget::Row::name_press (GdkEventButton* ev) void TransportMastersWidget::Row::remove_clicked () { + TransportMasterManager::instance().remove (tm->name()); } void diff --git a/libs/ardour/transport_master_manager.cc b/libs/ardour/transport_master_manager.cc index 7912b82218..0ac3bbfca2 100644 --- a/libs/ardour/transport_master_manager.cc +++ b/libs/ardour/transport_master_manager.cc @@ -359,7 +359,7 @@ TransportMasterManager::remove (std::string const & name) for (TransportMasters::iterator t = _transport_masters.begin(); t != _transport_masters.end(); ++t) { if ((*t)->name() == name) { - if (!tm->removeable()) { + if (!(*t)->removeable()) { return -1; } tm = *t; |