[Bf-blender-cvs] [bf969e9] master: Fix T46391: Sync Length in NLA is not working on all instances of clip
Joshua Leung
noreply at git.blender.org
Thu Oct 8 13:09:21 CEST 2015
Commit: bf969e9ddee34c49e99bfff168667e0bf5c74d6c
Author: Joshua Leung
Date: Fri Oct 9 00:02:58 2015 +1300
Branches: master
https://developer.blender.org/rBbf969e9ddee34c49e99bfff168667e0bf5c74d6c
Fix T46391: Sync Length in NLA is not working on all instances of clip
===================================================================
M source/blender/blenkernel/intern/nla.c
===================================================================
diff --git a/source/blender/blenkernel/intern/nla.c b/source/blender/blenkernel/intern/nla.c
index 378bb82..2069765 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:
More information about the Bf-blender-cvs
mailing list