Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Leung <aligorith@gmail.com>2014-02-21 15:52:40 +0400
committerJoshua Leung <aligorith@gmail.com>2014-02-21 15:53:04 +0400
commit5f18d863a9782c728ae4e9809cadffdbfe16632f (patch)
tree81984115f97e9f97b58fbda99c9fc0641dc45f53
parent4ff3ec835e321747880456e33cce261422bc05a7 (diff)
Bugfix: Toggling "auto-blends" option on NLA Strips doesn't update them immediately
-rw-r--r--source/blender/makesrna/intern/rna_nla.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/source/blender/makesrna/intern/rna_nla.c b/source/blender/makesrna/intern/rna_nla.c
index 4a95bd4e51b..07d221dd80d 100644
--- a/source/blender/makesrna/intern/rna_nla.c
+++ b/source/blender/makesrna/intern/rna_nla.c
@@ -231,6 +231,28 @@ static void rna_NlaStrip_blend_out_set(PointerRNA *ptr, float value)
data->blendout = value;
}
+static void rna_NlaStrip_use_auto_blend_set(PointerRNA *ptr, int value)
+{
+ NlaStrip *data = (NlaStrip *)ptr->data;
+
+ if (value) {
+ /* set the flag, then make sure a curve for this exists */
+ data->flag |= NLASTRIP_FLAG_USR_INFLUENCE;
+
+ /* validate state to ensure that auto-blend gets applied immediately */
+ if (ptr->id.data) {
+ IdAdtTemplate *iat = (IdAdtTemplate *)ptr->id.data;
+
+ if (iat->adt) {
+ BKE_nla_validate_state(iat->adt);
+ }
+ }
+ }
+ else {
+ data->flag &= ~NLASTRIP_FLAG_USR_INFLUENCE;
+ }
+}
+
static int rna_NlaStrip_action_editable(PointerRNA *ptr)
{
NlaStrip *strip = (NlaStrip *)ptr->data;
@@ -502,6 +524,7 @@ static void rna_def_nlastrip(BlenderRNA *brna)
prop = RNA_def_property(srna, "use_auto_blend", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", NLASTRIP_FLAG_AUTO_BLENDS);
+ RNA_def_property_boolean_funcs(prop, NULL, "rna_NlaStrip_use_auto_blend_set");
RNA_def_property_ui_text(prop, "Auto Blend In/Out",
"Number of frames for Blending In/Out is automatically determined from "
"overlapping strips");