[Bf-blender-cvs] [1919b104d3c] master: LibOverride: Fix missing update after an override reset.

Bastien Montagne noreply at git.blender.org
Thu Mar 18 15:59:23 CET 2021


Commit: 1919b104d3cee3672480b2f765a3259d04c2b51c
Author: Bastien Montagne
Date:   Thu Mar 18 15:58:20 2021 +0100
Branches: master
https://developer.blender.org/rB1919b104d3cee3672480b2f765a3259d04c2b51c

LibOverride: Fix missing update after an override reset.

We need to brute-force reset IDs with `ID_RECALC_ALL` here...

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

M	source/blender/blenkernel/intern/lib_override.c

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

diff --git a/source/blender/blenkernel/intern/lib_override.c b/source/blender/blenkernel/intern/lib_override.c
index 4ec130f8388..3b5566c6cdc 100644
--- a/source/blender/blenkernel/intern/lib_override.c
+++ b/source/blender/blenkernel/intern/lib_override.c
@@ -2240,10 +2240,11 @@ void BKE_lib_override_library_update(Main *bmain, ID *local)
 
   local->tag |= LIB_TAG_OVERRIDE_LIBRARY_REFOK;
 
-  /* Full rebuild of Depsgraph! */
-  /* Note: this is really brute force, in theory updates from RNA should have handled this already,
-   * but for now let's play it safe. */
-  DEG_id_tag_update_ex(bmain, local, ID_RECALC_COPY_ON_WRITE);
+  /* Note: Since we reload full content from linked ID here, potentially from edited local
+   * override, we do not really have a way to know *what* is changed, so we need to rely on the
+   * massive destruction weapon of `ID_RECALC_ALL` here. */
+  DEG_id_tag_update_ex(bmain, local, ID_RECALC_ALL);
+  /* For same reason as above, also assume that the relationships between IDs changed. */
   DEG_relations_tag_update(bmain);
 }



More information about the Bf-blender-cvs mailing list