Fix #105343: id.make_local() doesn't work for overridden data.

RNA `make_local` call isfairly low-level and by-passes
`BKE_library_make_local`, so it also needs to handle the liboverride
case itself.
This commit is contained in:
Bastien Montagne 2023-03-02 11:02:16 +01:00
parent 2eeec49640
commit 9e5275791f

@ -1016,7 +1016,12 @@ static void rna_ID_user_remap(ID *id, Main *bmain, ID *new_id)
static struct ID *rna_ID_make_local(struct ID *self, Main *bmain, bool UNUSED(clear_proxy))
{
BKE_lib_id_make_local(bmain, self, 0);
if (ID_IS_LINKED(self)) {
BKE_lib_id_make_local(bmain, self, 0);
}
else if (ID_IS_OVERRIDE_LIBRARY_REAL(self)) {
BKE_lib_override_library_make_local(self);
}
ID *ret_id = self->newid ? self->newid : self;
BKE_id_newptr_and_tag_clear(self);