diff options
-rw-r--r-- | source/blender/depsgraph/intern/eval/deg_eval_flush.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/source/blender/depsgraph/intern/eval/deg_eval_flush.cc b/source/blender/depsgraph/intern/eval/deg_eval_flush.cc index df6c139e916..50469d57a34 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_flush.cc +++ b/source/blender/depsgraph/intern/eval/deg_eval_flush.cc @@ -251,7 +251,10 @@ void flush_editors_id_update(Depsgraph *graph, const DEGEditorUpdateContext *upd if (graph->is_active && id_node->is_user_modified) { deg_editors_id_update(update_ctx, id_orig); } - if (ID_IS_OVERRIDE_LIBRARY(id_orig)) { + if (ID_IS_OVERRIDE_LIBRARY(id_orig) && id_orig->recalc != 0) { + /* We only want to tag an ID for liboverride autorefresh if it was actually tagged as + * changed. CoW IDs indirectly modified because of changes in other IDs should never + * require a liboverride diffing. */ id_orig->tag |= LIB_TAG_OVERRIDE_LIBRARY_AUTOREFRESH; } /* Inform draw engines that something was changed. */ |