From c5d0aafa28ef0e84ded8483a024868ed3a8a0a50 Mon Sep 17 00:00:00 2001 From: carlh Date: Thu, 22 Jul 2010 01:22:56 +0000 Subject: [PATCH] Don't move automation to follow region when a region has only been trimmed rather than moved. git-svn-id: svn+ssh://ardour.org/ardour2/branches/3.0@7465 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/ardour/ardour/playlist.h | 7 +++++++ libs/ardour/playlist.cc | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/libs/ardour/ardour/playlist.h b/libs/ardour/ardour/playlist.h index 100a0f77..450e1dc7 100644 --- a/libs/ardour/ardour/playlist.h +++ b/libs/ardour/ardour/playlist.h @@ -182,6 +182,8 @@ class Playlist : public SessionObject PBD::Signal0 NameChanged; PBD::Signal0 LengthChanged; PBD::Signal0 LayeringChanged; + + /** Emitted when regions have moved (not when regions have only been trimmed) */ PBD::Signal2 > const &, bool> RangesMoved; static std::string bump_name (std::string old_name, Session&); @@ -253,6 +255,11 @@ class Playlist : public SessionObject bool pending_contents_change; bool pending_layering; bool pending_length; + + /** Movements of time ranges caused by region moves; note that + * region trims are not included in this list; it is used to + * do automation-follows-regions. + */ std::list< Evoral::RangeMove > pending_range_moves; bool save_on_thaw; std::string last_save_reason; diff --git a/libs/ardour/playlist.cc b/libs/ardour/playlist.cc index 4c9b8f4b..e55b82c0 100644 --- a/libs/ardour/playlist.cc +++ b/libs/ardour/playlist.cc @@ -1619,7 +1619,7 @@ Playlist::region_changed (const PropertyChange& what_changed, boost::shared_ptr< check_dependents (region, false); } - if (what_changed.contains (Properties::position)) { + if (what_changed.contains (Properties::position) && !what_changed.contains (Properties::length)) { notify_region_moved (region); } -- 2.11.4.GIT