From 56c33f0202b51bc973b77b396d99d75ac858f716 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Mon, 12 Dec 2011 23:39:09 +0000 Subject: 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 --- libs/ardour/region.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'libs') 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 -- cgit v1.2.3