From 13d10582f0ce43fec4a56b3990f779fa88bdd806 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Thu, 25 Aug 2022 15:13:24 -0600 Subject: [PATCH] fix behavior of Region::mid_thaw() to match pre-nutempo behavior We no longer have a distinct "position" property, because the "length" property defines both extent and position. But we must not call ::recompute_at_start() when the position has not changed, so here we use Region::last_length() to simulate the position property. --- libs/ardour/region.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libs/ardour/region.cc b/libs/ardour/region.cc index 78d805815b..9c96a192a4 100644 --- a/libs/ardour/region.cc +++ b/libs/ardour/region.cc @@ -999,6 +999,7 @@ Region::trim_to_internal (timepos_t const & pos, timecnt_t const & len) if (!property_changes_suspended()) { _last_length = _length; } + std::cerr << "change len\n"; set_length_internal (nl); what_changed.add (Properties::length); } @@ -1402,7 +1403,9 @@ void Region::mid_thaw (const PropertyChange& what_changed) { if (what_changed.contains (Properties::length)) { - recompute_at_start (); + if (length().position() != last_position()) { + recompute_at_start (); + } recompute_at_end (); } }