diff --git a/libs/ardour/ardour/audioregion.h b/libs/ardour/ardour/audioregion.h index 460d76b551..0776669874 100644 --- a/libs/ardour/ardour/audioregion.h +++ b/libs/ardour/ardour/audioregion.h @@ -197,7 +197,7 @@ class AudioRegion : public Region PBD::Property _scale_amplitude; void register_properties (); - void post_set (); + void post_set (const PBD::PropertyChange&); void init (); void set_default_fades (); diff --git a/libs/ardour/ardour/midi_region.h b/libs/ardour/ardour/midi_region.h index 53ffb4497c..650c7c9b2e 100644 --- a/libs/ardour/ardour/midi_region.h +++ b/libs/ardour/ardour/midi_region.h @@ -130,6 +130,7 @@ class MidiRegion : public Region MidiStateTracker* tracker = 0) const; void register_properties (); + void post_set (const PBD::PropertyChange&); void recompute_at_start (); void recompute_at_end (); diff --git a/libs/ardour/audioregion.cc b/libs/ardour/audioregion.cc index 5c213bfb7c..9de1de1279 100644 --- a/libs/ardour/audioregion.cc +++ b/libs/ardour/audioregion.cc @@ -224,7 +224,7 @@ AudioRegion::~AudioRegion () } void -AudioRegion::post_set () +AudioRegion::post_set (const PropertyChange& /*ignored*/) { if (!_sync_marked) { _sync_position = _start; diff --git a/libs/ardour/midi_region.cc b/libs/ardour/midi_region.cc index e487cae2f5..02d9f7d398 100644 --- a/libs/ardour/midi_region.cc +++ b/libs/ardour/midi_region.cc @@ -123,6 +123,14 @@ MidiRegion::clone () return boost::dynamic_pointer_cast (RegionFactory::create (ms, plist, true)); } +void +MidiRegion::post_set (const PropertyChange& pc) +{ + if (pc.contains (Properties::length) || pc.contains (Properties::position)) { + update_length_beats (); + } +} + void MidiRegion::set_length_internal (framecnt_t len) {