diff options
author | Bastien Montagne <bastien@blender.org> | 2020-10-21 17:58:06 +0300 |
---|---|---|
committer | Bastien Montagne <bastien@blender.org> | 2020-10-21 17:59:11 +0300 |
commit | 62528677bf5d1feadeb8a6020922de3b59e8cbb2 (patch) | |
tree | b64c368967363fb8d777b0d6167c2955536122b3 /source | |
parent | 959a06b8ffdfe7eb28721c6ec559354825819058 (diff) |
Fix 'Make Local' operation to support liboverrides.
One can now use 'make local' from the Outliner or the 3DView to also
fully localize overrides of linked data.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenkernel/intern/lib_id.c | 3 | ||||
-rw-r--r-- | source/blender/editors/space_outliner/outliner_tools.c | 3 |
2 files changed, 6 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/lib_id.c b/source/blender/blenkernel/intern/lib_id.c index 27422440cd5..ae6ee71da82 100644 --- a/source/blender/blenkernel/intern/lib_id.c +++ b/source/blender/blenkernel/intern/lib_id.c @@ -1884,6 +1884,9 @@ void BKE_library_make_local(Main *bmain, if (id->lib == NULL) { id->tag &= ~(LIB_TAG_EXTERN | LIB_TAG_INDIRECT | LIB_TAG_NEW); id->flag &= ~LIB_INDIRECT_WEAK_LINK; + if (ID_IS_OVERRIDE_LIBRARY_REAL(id)) { + BKE_lib_override_library_free(&id->override_library, true); + } } /* The check on the fourth line (LIB_TAG_PRE_EXISTING) is done so it's possible to tag data * you don't want to be made local, used for appending data, diff --git a/source/blender/editors/space_outliner/outliner_tools.c b/source/blender/editors/space_outliner/outliner_tools.c index 3357b0b7346..cbdeb350ba4 100644 --- a/source/blender/editors/space_outliner/outliner_tools.c +++ b/source/blender/editors/space_outliner/outliner_tools.c @@ -730,6 +730,9 @@ static void id_local_fn(bContext *C, BKE_main_id_clear_newpoins(bmain); } } + else if (ID_IS_OVERRIDE_LIBRARY_REAL(tselem->id)) { + BKE_lib_override_library_free(&tselem->id->override_library, true); + } } static void object_proxy_to_override_convert_fn(bContext *C, |