diff options
author | Bastien Montagne <bastien@blender.org> | 2020-08-12 18:57:38 +0300 |
---|---|---|
committer | Bastien Montagne <bastien@blender.org> | 2020-08-12 20:03:03 +0300 |
commit | b3165fb8b5689c3003292080b5783a22f48e77ec (patch) | |
tree | 9dd8308967dde42ae8608c14c053540f3c4233e7 /source/blender/editors/interface/interface_templates.c | |
parent | 54c2c1492122bc736f6d5a9f7ddf1f51b0673eff (diff) |
Fix (unreported) glitch when making liboverride of object from IDtemplate.
We need to ensure new override is instantiated in the scene...
Reported by @Severin, thanks.
Diffstat (limited to 'source/blender/editors/interface/interface_templates.c')
-rw-r--r-- | source/blender/editors/interface/interface_templates.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index d3487b635ce..50148d8a8cd 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -572,6 +572,15 @@ static void template_id_cb(bContext *C, void *arg_litem, void *arg_event) if (override_id != NULL) { BKE_main_id_clear_newpoins(bmain); + if (GS(override_id->name) == ID_OB) { + Scene *scene = CTX_data_scene(C); + if (!BKE_collection_has_object_recursive(scene->master_collection, + (Object *)override_id)) { + BKE_collection_object_add_from( + bmain, scene, (Object *)id, (Object *)override_id); + } + } + /* Assign new pointer, takes care of updates/notifiers */ RNA_id_pointer_create(override_id, &idptr); } |