Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Montagne <bastien@blender.org>2021-03-18 17:58:20 +0300
committerBastien Montagne <bastien@blender.org>2021-03-18 17:59:18 +0300
commit1919b104d3cee3672480b2f765a3259d04c2b51c (patch)
tree390f143ac2426e8fbe905bfa303feceb75dd19f0 /source/blender/blenkernel/intern/lib_override.c
parent59f92a218a80175364e08e43de541e2674c0ae55 (diff)
LibOverride: Fix missing update after an override reset.
We need to brute-force reset IDs with `ID_RECALC_ALL` here...
Diffstat (limited to 'source/blender/blenkernel/intern/lib_override.c')
-rw-r--r--source/blender/blenkernel/intern/lib_override.c9
1 files changed, 5 insertions, 4 deletions
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);
}