diff options
-rw-r--r-- | libs/ardour/ardour/region_factory.h | 2 | ||||
-rw-r--r-- | libs/ardour/playlist.cc | 2 | ||||
-rw-r--r-- | libs/ardour/region_factory.cc | 4 |
3 files changed, 4 insertions, 4 deletions
diff --git a/libs/ardour/ardour/region_factory.h b/libs/ardour/ardour/region_factory.h index 4b32da0512..32c5e32c0f 100644 --- a/libs/ardour/ardour/region_factory.h +++ b/libs/ardour/ardour/region_factory.h @@ -59,7 +59,7 @@ public: static PBD::Signal1<void,boost::shared_ptr<Region> > CheckNewRegion; /** create a "pure copy" of Region @param other */ - static boost::shared_ptr<Region> create (boost::shared_ptr<const Region> other, bool announce = false); + static boost::shared_ptr<Region> create (boost::shared_ptr<const Region> other, bool announce = false, bool fork = false); /** create a region from a single Source */ static boost::shared_ptr<Region> create (boost::shared_ptr<Source>, diff --git a/libs/ardour/playlist.cc b/libs/ardour/playlist.cc index b7ff71068b..094b682adb 100644 --- a/libs/ardour/playlist.cc +++ b/libs/ardour/playlist.cc @@ -291,7 +291,7 @@ Playlist::copy_regions (RegionList& newlist) const RegionReadLock rlock (const_cast<Playlist *> (this)); for (RegionList::const_iterator i = regions.begin(); i != regions.end(); ++i) { - newlist.push_back (RegionFactory::create (*i, true)); + newlist.push_back (RegionFactory::create (*i, true, true)); } } diff --git a/libs/ardour/region_factory.cc b/libs/ardour/region_factory.cc index 78425db88c..c1f3ecf474 100644 --- a/libs/ardour/region_factory.cc +++ b/libs/ardour/region_factory.cc @@ -46,7 +46,7 @@ std::map<std::string, PBD::ID> RegionFactory::region_name_map; RegionFactory::CompoundAssociations RegionFactory::_compound_associations; boost::shared_ptr<Region> -RegionFactory::create (boost::shared_ptr<const Region> region, bool announce) +RegionFactory::create (boost::shared_ptr<const Region> region, bool announce, bool fork) { boost::shared_ptr<Region> ret; boost::shared_ptr<const AudioRegion> ar; @@ -58,7 +58,7 @@ RegionFactory::create (boost::shared_ptr<const Region> region, bool announce) } else if ((mr = boost::dynamic_pointer_cast<const MidiRegion>(region)) != 0) { - if (mr->session().config.get_midi_copy_is_fork()) { + if (mr->session().config.get_midi_copy_is_fork() || fork) { /* What we really want to do here is what Editor::fork_region() does via Session::create_midi_source_by_stealing_name(), but we don't have a Track. We'll just live with the skipped number, |