diff options
author | Sybren A. Stüvel <sybren@blender.org> | 2020-09-24 16:15:17 +0300 |
---|---|---|
committer | Sybren A. Stüvel <sybren@blender.org> | 2020-09-24 16:17:30 +0300 |
commit | f3ac39b857394d804df04d893517ebd1a403de19 (patch) | |
tree | 569f1785f696ef2daaeb5d664ff3617c24a06641 | |
parent | 0dfafa8124575f2285154b659a1962cfe0752bad (diff) |
Fix T80708: FCurve modifiers change behavior after editing NLA clip
Tag an Action for recalculating animation when it's pushed down onto the
NLA stack, as its effective boundaries change. Normally an Action spans
all of the timeline, and the effects of Cycle modifiers are visible
everywhere. When the Action is converted to an NLA clip, the modifier's
effect should only be visible for the duration of the NLA clip.
-rw-r--r-- | source/blender/editors/space_nla/nla_channels.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/source/blender/editors/space_nla/nla_channels.c b/source/blender/editors/space_nla/nla_channels.c index 3cc4c0247aa..f6f3571018a 100644 --- a/source/blender/editors/space_nla/nla_channels.c +++ b/source/blender/editors/space_nla/nla_channels.c @@ -518,7 +518,12 @@ static int nlachannels_pushdown_exec(bContext *C, wmOperator *op) /* 'push-down' action - only usable when not in TweakMode */ BKE_nla_action_pushdown(adt); - DEG_id_tag_update_ex(CTX_data_main(C), id, ID_RECALC_ANIMATION); + struct Main *bmain = CTX_data_main(C); + DEG_id_tag_update_ex(bmain, id, ID_RECALC_ANIMATION); + + /* The action needs updating too, as FCurve modifiers are to be reevaluated. They won't extend + * beyond the NLA strip after pushing down to the NLA. */ + DEG_id_tag_update_ex(bmain, &adt->action->id, ID_RECALC_ANIMATION); /* set notifier that things have changed */ WM_event_add_notifier(C, NC_ANIMATION | ND_NLA_ACTCHANGE, NULL); |