diff options
author | Dalai Felinto <dfelinto@gmail.com> | 2016-10-13 19:42:54 +0300 |
---|---|---|
committer | Dalai Felinto <dfelinto@gmail.com> | 2016-10-13 19:42:54 +0300 |
commit | dfa5b32c8cc4f9df7da660754eae773f5df102e6 (patch) | |
tree | 73e32bbc235b36a991f722d589c00462fb7eee8b /source/blender/blenkernel/intern/object.c | |
parent | ecbedce81eb45e013ff03af64be9bc71c896e85b (diff) | |
parent | 625b504b23beb11e8a02408e7474e38fa525e8ee (diff) |
Merge remote-tracking branch 'origin/master' into blender2.8
Diffstat (limited to 'source/blender/blenkernel/intern/object.c')
-rw-r--r-- | source/blender/blenkernel/intern/object.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index 85322408099..f7257b2b0dd 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -1018,7 +1018,7 @@ Object *BKE_object_copy(Main *bmain, Object *ob) return BKE_object_copy_ex(bmain, ob, false); } -void BKE_object_make_local(Main *bmain, Object *ob, const bool lib_local) +void BKE_object_make_local_ex(Main *bmain, Object *ob, const bool lib_local, const bool clear_proxy) { bool is_local = false, is_lib = false; @@ -1038,6 +1038,13 @@ void BKE_object_make_local(Main *bmain, Object *ob, const bool lib_local) if (!is_lib) { id_clear_lib_data(bmain, &ob->id); BKE_id_expand_local(&ob->id); + if (clear_proxy) { + if (ob->proxy_from != NULL) { + ob->proxy_from->proxy = NULL; + ob->proxy_from->proxy_group = NULL; + } + ob->proxy = ob->proxy_from = ob->proxy_group = NULL; + } } else { Object *ob_new = BKE_object_copy(bmain, ob); @@ -1052,6 +1059,11 @@ void BKE_object_make_local(Main *bmain, Object *ob, const bool lib_local) } } +void BKE_object_make_local(Main *bmain, Object *ob, const bool lib_local) +{ + BKE_object_make_local_ex(bmain, ob, lib_local, true); +} + /* Returns true if the Object is from an external blend file (libdata) */ bool BKE_object_is_libdata(Object *ob) { |