summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2009-11-28 00:48:35 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2009-11-28 00:48:35 +0000
commitc5db9a21b990b55e1b515a65a99bdc504d0af89c (patch)
tree8f1af4b8b2d371b3cdd8e39b2bb57624c6f8243b /gtk2_ardour
parent8724caeee874bfa15ca81b0d515692683ffc5461 (diff)
another fix for binding shared_ptr's into signals
git-svn-id: svn://localhost/ardour2/branches/3.0@6194 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/editor_regions.cc11
-rw-r--r--gtk2_ardour/editor_regions.h1
-rw-r--r--gtk2_ardour/streamview.cc2
3 files changed, 13 insertions, 1 deletions
diff --git a/gtk2_ardour/editor_regions.cc b/gtk2_ardour/editor_regions.cc
index 0b3d01b7d8..697c46bba5 100644
--- a/gtk2_ardour/editor_regions.cc
+++ b/gtk2_ardour/editor_regions.cc
@@ -157,12 +157,23 @@ EditorRegions::handle_new_regions (vector<boost::weak_ptr<Region> >& v)
}
void
+EditorRegions::region_hidden_weak (boost::weak_ptr<Region> wr)
+{
+ boost::shared_ptr<Region> r (wr.lock());
+
+ if (r) {
+ region_hidden (r);
+ }
+}
+
+void
EditorRegions::region_hidden (boost::shared_ptr<Region> r)
{
ENSURE_GUI_THREAD(bind (mem_fun(*this, &EditorRegions::region_hidden), r));
redisplay ();
}
+
void
EditorRegions::add_regions (vector<boost::weak_ptr<Region> >& regions)
{
diff --git a/gtk2_ardour/editor_regions.h b/gtk2_ardour/editor_regions.h
index 5d0ba42425..cc031b141e 100644
--- a/gtk2_ardour/editor_regions.h
+++ b/gtk2_ardour/editor_regions.h
@@ -126,6 +126,7 @@ private:
void add_region (boost::shared_ptr<ARDOUR::Region>);
void add_regions (std::vector<boost::weak_ptr<ARDOUR::Region> > & );
void region_hidden (boost::shared_ptr<ARDOUR::Region>);
+ void region_hidden_weak (boost::weak_ptr<ARDOUR::Region>);
void populate_row (boost::shared_ptr<ARDOUR::Region>, Gtk::TreeModel::Row const &);
void update_row (boost::shared_ptr<ARDOUR::Region>);
bool update_subrows (boost::shared_ptr<ARDOUR::Region>, Gtk::TreeModel::Row const &, int);
diff --git a/gtk2_ardour/streamview.cc b/gtk2_ardour/streamview.cc
index d3bbeb3532..6e3d62291d 100644
--- a/gtk2_ardour/streamview.cc
+++ b/gtk2_ardour/streamview.cc
@@ -186,7 +186,7 @@ StreamView::add_region_view_weak (boost::weak_ptr<Region> r)
void
StreamView::add_region_view (boost::shared_ptr<Region> r)
{
- ENSURE_GUI_THREAD (bind (mem_fun (*this, &StreamView::add_region_view), r));
+ ENSURE_GUI_THREAD (bind (mem_fun (*this, &StreamView::add_region_view_weak), boost::weak_ptr<Region>(r)));
add_region_view_internal (r, true);