diff options
author | Carl Hetherington <carl@carlh.net> | 2011-12-12 23:39:09 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2011-12-12 23:39:09 +0000 |
commit | 56c33f0202b51bc973b77b396d99d75ac858f716 (patch) | |
tree | e4ae97e2404f8077e13c3b0d4ba7de4ef35f3e9e /libs/ardour/region.cc | |
parent | af768486c9b354a1703b09810e21328e513ce51d (diff) |
Always set up _last_position on set_position_internal so that the playlist range movement code doesn't get confused when we have region move notifications where the region doesn't actually move (should fix #4557).
git-svn-id: svn://localhost/ardour2/branches/3.0@10992 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/region.cc')
-rw-r--r-- | libs/ardour/region.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/libs/ardour/region.cc b/libs/ardour/region.cc index d337cf6625..f761602ef6 100644 --- a/libs/ardour/region.cc +++ b/libs/ardour/region.cc @@ -596,8 +596,13 @@ Region::set_position (framepos_t pos) void Region::set_position_internal (framepos_t pos, bool allow_bbt_recompute) { + /* We emit a change of Properties::position even if the position hasn't changed + (see Region::set_position), so we must always set this up so that + e.g. Playlist::notify_region_moved doesn't use an out-of-date last_position. + */ + _last_position = _position; + if (_position != pos) { - _last_position = _position; _position = pos; /* check that the new _position wouldn't make the current |