diff options
Diffstat (limited to 'source/blender/depsgraph/intern/depsgraph_eval.cc')
-rw-r--r-- | source/blender/depsgraph/intern/depsgraph_eval.cc | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/source/blender/depsgraph/intern/depsgraph_eval.cc b/source/blender/depsgraph/intern/depsgraph_eval.cc index 7952f27507f..ae94fbcfdb8 100644 --- a/source/blender/depsgraph/intern/depsgraph_eval.cc +++ b/source/blender/depsgraph/intern/depsgraph_eval.cc @@ -72,6 +72,14 @@ void DEG_evaluate_on_refresh(Depsgraph *graph) deg_graph->frame = frame; deg_graph->ctime = ctime; } + else if (scene->id.recalc & ID_RECALC_FRAME_CHANGE) { + /* Comparing depsgraph & scene frame fails in the case of undo, + * since the undo state is stored before updates from the frame change have been applied. + * In this case reading back the undo state will behave as if no updates on frame change + * is needed as the #Depsgraph.ctime & frame will match the values in the input scene. + * Use #ID_RECALC_FRAME_CHANGE to detect that recalculation is necessary. see: T66913. */ + deg_graph->tag_time_source(); + } deg_flush_updates_and_refresh(deg_graph); } |