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.
This commit is contained in:
Bastien Montagne 2020-10-21 16:58:06 +02:00
parent 959a06b8ff
commit 62528677bf
2 changed files with 6 additions and 0 deletions

View File

@ -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,

View File

@ -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,