diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2016-07-08 20:53:57 +0300 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2016-07-08 20:53:57 +0300 |
commit | 8662f583da216b56cf8f4dbe5f68c9da7999a9f1 (patch) | |
tree | d13a385fb3462dd1aecb4d4f69448730a166bdd5 /source/blender/blenkernel/intern/lattice.c | |
parent | 282de867d48fea9cf930e68ef9553ed5d31cc5fd (diff) |
Fix (unreported) broken shapekeys after 'make_local' of datablocks used both directly and directly.
At first thought it was own recent work, but think issue is there since ages actually...
Basically, id_make_local() would always localize mesh/curve/lattice shapekeys, even in case
obdata localization actually made a local copy instead of localizing original datablock.
This was causing shapekeys being localized twice, and other odd nasty effects.
Diffstat (limited to 'source/blender/blenkernel/intern/lattice.c')
-rw-r--r-- | source/blender/blenkernel/intern/lattice.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/lattice.c b/source/blender/blenkernel/intern/lattice.c index 07e6ba9062e..53a3973f2c0 100644 --- a/source/blender/blenkernel/intern/lattice.c +++ b/source/blender/blenkernel/intern/lattice.c @@ -339,6 +339,7 @@ void BKE_lattice_make_local(Lattice *lt) if (!ID_IS_LINKED_DATABLOCK(lt)) return; if (lt->id.us == 1) { id_clear_lib_data(bmain, <->id); + BKE_key_make_local(lt->key); return; } @@ -351,6 +352,7 @@ void BKE_lattice_make_local(Lattice *lt) if (is_local && is_lib == false) { id_clear_lib_data(bmain, <->id); + BKE_key_make_local(lt->key); } else if (is_local && is_lib) { Lattice *lt_new = BKE_lattice_copy(lt); |