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:
authorSergey Sharybin <sergey.vfx@gmail.com>2019-03-13 17:38:45 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2019-03-13 17:51:44 +0300
commit0e9ea707b5e5be2a38dd29dded3dd6c25a5e1992 (patch)
tree6b68505ac06a9fbf5d6a5c6a1cea794d0326adcc /source/blender/makesrna
parentbc5b0f7a091c3955263701be8c858fd56f8ba59f (diff)
Fix T58721: Keyframing one transform option reset other transforms
Use dedicated flag to tag animation just for copy-on-write synchronization, which makes it so copies of the original data blocks gets in sync with the original ID. This will not flush the animation update to all objects which depend on that animation. If such flush is required, use ID_RECALC_ANIMATION. Reviewers: brecht Reviewed By: brecht Differential Revision: https://developer.blender.org/D4508
Diffstat (limited to 'source/blender/makesrna')
-rw-r--r--source/blender/makesrna/intern/rna_action.c4
-rw-r--r--source/blender/makesrna/intern/rna_fcurve.c6
2 files changed, 5 insertions, 5 deletions
diff --git a/source/blender/makesrna/intern/rna_action.c b/source/blender/makesrna/intern/rna_action.c
index 293ff1db505..1a66a122612 100644
--- a/source/blender/makesrna/intern/rna_action.c
+++ b/source/blender/makesrna/intern/rna_action.c
@@ -98,7 +98,7 @@ static void rna_Action_groups_remove(bAction *act, ReportList *reports, PointerR
MEM_freeN(agrp);
RNA_POINTER_INVALIDATE(agrp_ptr);
- DEG_id_tag_update(&act->id, ID_RECALC_COPY_ON_WRITE);
+ DEG_id_tag_update(&act->id, ID_RECALC_ANIMATION_NO_FLUSH);
WM_main_add_notifier(NC_ANIMATION | ND_KEYFRAME | NA_EDITED, NULL);
}
@@ -157,7 +157,7 @@ static void rna_Action_fcurve_remove(bAction *act, ReportList *reports, PointerR
RNA_POINTER_INVALIDATE(fcu_ptr);
}
- DEG_id_tag_update(&act->id, ID_RECALC_COPY_ON_WRITE);
+ DEG_id_tag_update(&act->id, ID_RECALC_ANIMATION_NO_FLUSH);
WM_main_add_notifier(NC_ANIMATION | ND_KEYFRAME | NA_EDITED, NULL);
}
diff --git a/source/blender/makesrna/intern/rna_fcurve.c b/source/blender/makesrna/intern/rna_fcurve.c
index b6cae3de386..ca4a6d2481f 100644
--- a/source/blender/makesrna/intern/rna_fcurve.c
+++ b/source/blender/makesrna/intern/rna_fcurve.c
@@ -495,7 +495,7 @@ static void rna_FCurve_update_eval(Main *UNUSED(bmain), Scene *UNUSED(scene), Po
IdAdtTemplate *iat = (IdAdtTemplate *)ptr->id.data;
if (iat && iat->adt && iat->adt->action) {
/* action is separate datablock, needs separate tag */
- DEG_id_tag_update(&iat->adt->action->id, ID_RECALC_COPY_ON_WRITE);
+ DEG_id_tag_update(&iat->adt->action->id, ID_RECALC_ANIMATION);
}
}
@@ -618,7 +618,7 @@ static void rna_FModifier_update(Main *UNUSED(bmain), Scene *UNUSED(scene), Poin
if (adt != NULL) {
if (adt->action != NULL) {
/* action is separate datablock, needs separate tag */
- DEG_id_tag_update(&adt->action->id, ID_RECALC_COPY_ON_WRITE);
+ DEG_id_tag_update(&adt->action->id, ID_RECALC_ANIMATION);
}
}
@@ -955,7 +955,7 @@ static void rna_Keyframe_update(Main *UNUSED(bmain), Scene *UNUSED(scene), Point
if (adt != NULL) {
if (adt->action != NULL) {
/* action is separate datablock, needs separate tag */
- DEG_id_tag_update(&adt->action->id, ID_RECALC_COPY_ON_WRITE);
+ DEG_id_tag_update(&adt->action->id, ID_RECALC_ANIMATION);
}
}
}