Fix T46391: Sync Length in NLA is not working on all instances of clip

This commit is contained in:
Joshua Leung 2015-10-09 00:02:58 +13:00
parent afeca633c2
commit bf969e9dde
Notes: blender-bot 2023-02-14 08:34:34 +01:00
Referenced by issue #46391, Sync Length in NLA is not working on all instances of clip
1 changed files with 13 additions and 2 deletions

View File

@ -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: