summaryrefslogtreecommitdiff
path: root/libs/ardour/region.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/region.cc')
-rw-r--r--libs/ardour/region.cc18
1 files changed, 12 insertions, 6 deletions
diff --git a/libs/ardour/region.cc b/libs/ardour/region.cc
index fb662beca3..1754e24b5e 100644
--- a/libs/ardour/region.cc
+++ b/libs/ardour/region.cc
@@ -61,7 +61,7 @@ sigc::signal<void,boost::shared_ptr<ARDOUR::Region> > Region::RegionPropertyChan
Region::Region (Session& s, nframes_t start, nframes_t length, const string& name, DataType type, layer_t layer, Region::Flag flags)
: SessionObject(s, name)
, _type(type)
- , _flags(flags)
+ , _flags(Flag (flags|DoNotSendPropertyChanges))
, _start(start)
, _length(length)
, _position(0)
@@ -86,7 +86,7 @@ Region::Region (Session& s, nframes_t start, nframes_t length, const string& nam
Region::Region (boost::shared_ptr<Source> src, nframes_t start, nframes_t length, const string& name, DataType type, layer_t layer, Region::Flag flags)
: SessionObject(src->session(), name)
, _type(type)
- , _flags(flags)
+ , _flags(Flag (flags|DoNotSendPropertyChanges))
, _start(start)
, _length(length)
, _position(0)
@@ -119,7 +119,7 @@ Region::Region (boost::shared_ptr<Source> src, nframes_t start, nframes_t length
Region::Region (const SourceList& srcs, nframes_t start, nframes_t length, const string& name, DataType type, layer_t layer, Region::Flag flags)
: SessionObject(srcs.front()->session(), name)
, _type(type)
- , _flags(flags)
+ , _flags(Flag (flags|DoNotSendPropertyChanges))
, _start(start)
, _length(length)
, _position(0)
@@ -150,6 +150,8 @@ Region::Region (boost::shared_ptr<const Region> other, nframes_t offset, nframes
_start = other->_start + offset;
copy_stuff (other, offset, length, name, layer, flags);
+ _flags = Flag (_flags | DoNotSendPropertyChanges);
+
/* if the other region had a distinct sync point
set, then continue to use it as best we can.
otherwise, reset sync point back to start.
@@ -188,6 +190,8 @@ Region::Region (boost::shared_ptr<const Region> other, nframes_t length, const s
_start = 0;
copy_stuff (other, 0, length, name, layer, flags);
+ _flags = Flag (_flags | DoNotSendPropertyChanges);
+
/* sync pos is relative to start of file. our start-in-file is now zero,
so set our sync position to whatever the the difference between
_start and _sync_pos was in the other region.
@@ -253,6 +257,8 @@ Region::Region (boost::shared_ptr<const Region> other)
, _pending_changed(Change(0))
, _last_layer_op(other->_last_layer_op)
{
+ _flags = Flag (_flags | DoNotSendPropertyChanges);
+
other->_first_edit = EditChangesName;
if (other->_extra_xml) {
@@ -268,7 +274,7 @@ Region::Region (boost::shared_ptr<const Region> other)
Region::Region (const SourceList& srcs, const XMLNode& node)
: SessionObject(srcs.front()->session(), X_("error: XML did not reset this"))
, _type(DataType::NIL) // to be loaded from XML
- , _flags(Flag(0))
+ , _flags(DoNotSendPropertyChanges)
, _start(0)
, _length(0)
, _position(0)
@@ -297,7 +303,7 @@ Region::Region (const SourceList& srcs, const XMLNode& node)
Region::Region (boost::shared_ptr<Source> src, const XMLNode& node)
: SessionObject(src->session(), X_("error: XML did not reset this"))
, _type(DataType::NIL)
- , _flags(Flag(0))
+ , _flags(DoNotSendPropertyChanges)
, _start(0)
, _length(0)
, _position(0)
@@ -1400,7 +1406,7 @@ Region::send_change (Change what_changed)
StateChanged (what_changed);
- if (!(_flags & DoNotSaveState)) {
+ if (!(_flags & DoNotSendPropertyChanges)) {
/* Try and send a shared_pointer unless this is part of the constructor.
If so, do nothing.