[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