Fix T70409: Propagate Pose not updating correctly
authorSybren A. Stüvel <sybren@blender.org>
Wed, 2 Oct 2019 14:08:46 +0000 (16:08 +0200)
committerSybren A. Stüvel <sybren@blender.org>
Wed, 2 Oct 2019 14:08:56 +0000 (16:08 +0200)
The Action was changed without tagging it as such in the depsgraph.
Thanks @sergey for the sanity check!

source/blender/editors/armature/pose_utils.c

index 3f6db956643ac7618b8c439a84f9dfbe2feaa814..8d2d7d790d2dde639e66b072b40865ae8626d303 100644 (file)
@@ -32,6 +32,7 @@
 #include "DNA_scene_types.h"
 
 #include "BKE_action.h"
+#include "BKE_animsys.h"
 #include "BKE_armature.h"
 #include "BKE_idprop.h"
 #include "BKE_layer.h"
@@ -223,6 +224,11 @@ void poseAnim_mapping_refresh(bContext *C, Scene *UNUSED(scene), Object *ob)
 {
   DEG_id_tag_update(&ob->id, ID_RECALC_GEOMETRY);
   WM_event_add_notifier(C, NC_OBJECT | ND_POSE, ob);
+
+  AnimData *adt = BKE_animdata_from_id(&ob->id);
+  if (adt && adt->action) {
+    DEG_id_tag_update(&adt->action->id, ID_RECALC_ANIMATION_NO_FLUSH);
+  }
 }
 
 /* reset changes made to current pose */