From bf969e9ddee34c49e99bfff168667e0bf5c74d6c Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Fri, 9 Oct 2015 00:02:58 +1300 Subject: Fix T46391: Sync Length in NLA is not working on all instances of clip --- source/blender/blenkernel/intern/nla.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'source') diff --git a/source/blender/blenkernel/intern/nla.c b/source/blender/blenkernel/intern/nla.c index 378bb82be17..20697659e63 100644 --- a/source/blender/blenkernel/intern/nla.c +++ b/source/blender/blenkernel/intern/nla.c @@ -1778,7 +1778,7 @@ bool BKE_nla_tweakmode_enter(AnimData *adt) } return false; } - + /* go over all the tracks up to the active one, tagging each strip that uses the same * action as the active strip, but leaving everything else alone */ @@ -1859,8 +1859,19 @@ void BKE_nla_tweakmode_exit(AnimData *adt) for (nlt = adt->nla_tracks.first; nlt; nlt = nlt->next) { nlt->flag &= ~NLATRACK_DISABLED; - for (strip = nlt->strips.first; strip; strip = strip->next) + for (strip = nlt->strips.first; strip; strip = strip->next) { + /* sync strip extents if this strip uses the same action */ + if ((adt->actstrip) && (adt->actstrip->act == strip->act) && (strip->flag & NLASTRIP_FLAG_SYNC_LENGTH)) { + /* recalculate the length of the action */ + calc_action_range(strip->act, &strip->actstart, &strip->actend, 0); + + /* adjust the strip extents in response to this */ + BKE_nlastrip_recalculate_bounds(strip); + } + + /* clear tweakuser flag */ strip->flag &= ~NLASTRIP_FLAG_TWEAKUSER; + } } /* handle AnimData level changes: -- cgit v1.2.3