[Bf-blender-cvs] [4fd3d96f46e] master: Fix Pushdown of an action from the Action Editor lacks immediate updates

Philipp Oeser noreply at git.blender.org
Tue Apr 12 11:19:31 CEST 2022


Commit: 4fd3d96f46ea4d9f30cdd9d0bc957c776b6f4e83
Author: Philipp Oeser
Date:   Wed Apr 6 11:40:31 2022 +0200
Branches: master
https://developer.blender.org/rB4fd3d96f46ea4d9f30cdd9d0bc957c776b6f4e83

Fix Pushdown of an action from the Action Editor lacks immediate updates

The issue reported was that the recently introduced manual framerange of
an action (see rB5d59b38605d6) was not having an immediate effect in
case the action was pushed down from the Action Editor and only showed
its effects after e.g. saving and reloading the file. However doing the
same thing (pushing down the action) was working fine when done from the
NLA.

Now bring pushdown in sync (in terms of DEG update tagging) between the
Action Editor and the NLA, meaning that now both the owner and the
action are tagged when pushdown happens from the Action Editor as well.

Fixes T96964.

Maniphest Tasks: T96964

Differential Revision: https://developer.blender.org/D14564

===================================================================

M	source/blender/editors/space_action/CMakeLists.txt
M	source/blender/editors/space_action/action_data.c

===================================================================

diff --git a/source/blender/editors/space_action/CMakeLists.txt b/source/blender/editors/space_action/CMakeLists.txt
index 9e292062f27..841bd5cf91b 100644
--- a/source/blender/editors/space_action/CMakeLists.txt
+++ b/source/blender/editors/space_action/CMakeLists.txt
@@ -5,6 +5,7 @@ set(INC
   ../../blenkernel
   ../../blenlib
   ../../blentranslation
+  ../../depsgraph
   ../../gpu
   ../../makesdna
   ../../makesrna
diff --git a/source/blender/editors/space_action/action_data.c b/source/blender/editors/space_action/action_data.c
index 36858d57446..8f97a58451e 100644
--- a/source/blender/editors/space_action/action_data.c
+++ b/source/blender/editors/space_action/action_data.c
@@ -45,6 +45,8 @@
 #include "ED_mask.h"
 #include "ED_screen.h"
 
+#include "DEG_depsgraph.h"
+
 #include "WM_api.h"
 #include "WM_types.h"
 
@@ -335,6 +337,13 @@ static int action_pushdown_exec(bContext *C, wmOperator *op)
     /* action can be safely added */
     BKE_nla_action_pushdown(adt, ID_IS_OVERRIDE_LIBRARY(adt_id_owner));
 
+    struct Main *bmain = CTX_data_main(C);
+    DEG_id_tag_update_ex(bmain, adt_id_owner, 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);
+
     /* Stop displaying this action in this editor
      * NOTE: The editor itself doesn't set a user...
      */



More information about the Bf-blender-cvs mailing list