Fix region-gain when trimming, cutting or partitioning regions
The during trim-front, the call order is 1. Region::set_position_internal 2. Region::set_length_internal ::set_position_internal sets `_last_length.set_position (position());` but the later call ::set_length_internal does `_last_length = _length;` This sets last_position() == position(), and later Region::mid_thaw() does not call Region::recompute_at_start(). Region gain envelope was not updated. see also00a1b7cb24
and13d10582f0
This commit is contained in:
parent
d39f064756
commit
8ba21e7fff
@ -492,10 +492,13 @@ void
|
|||||||
Region::set_length_internal (timecnt_t const & len)
|
Region::set_length_internal (timecnt_t const & len)
|
||||||
{
|
{
|
||||||
timecnt_t l (len);
|
timecnt_t l (len);
|
||||||
|
timepos_t p (_last_length.position());
|
||||||
|
|
||||||
l.set_position (position());
|
l.set_position (position());
|
||||||
|
|
||||||
_last_length = _length;
|
_last_length = _length;
|
||||||
|
_last_length.set_position (p);
|
||||||
|
|
||||||
_length = l;
|
_length = l;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user