diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2018-12-04 19:07:47 +0300 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2018-12-04 19:07:47 +0300 |
commit | 6a0c25b44721715574759bd0455ba1f33b3f3dae (patch) | |
tree | 698523e929d27807b4b1676dfc9b00266b12f7b6 /source/blender/blenkernel/intern/object_update.c | |
parent | 64474fbc22b3c2ccc5d45dffd58ba4f587974c52 (diff) |
Fix T58700: Modifier error msgs not showing.
We need to copy those back from evaluated modifierdata to orig one (as
part of `BKE_object_synchronize_to_original()`).
Diffstat (limited to 'source/blender/blenkernel/intern/object_update.c')
-rw-r--r-- | source/blender/blenkernel/intern/object_update.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/object_update.c b/source/blender/blenkernel/intern/object_update.c index b95f1c821e2..10bf6aed898 100644 --- a/source/blender/blenkernel/intern/object_update.c +++ b/source/blender/blenkernel/intern/object_update.c @@ -293,6 +293,18 @@ void BKE_object_synchronize_to_original(Depsgraph *depsgraph, Object *object) copy_m4_m4(object_orig->constinv, object->constinv); object_orig->transflag = object->transflag; object_orig->flag = object->flag; + + /* Copy back error messages from modifiers. */ + for (ModifierData *md = object->modifiers.first, *md_orig = object_orig->modifiers.first; + md != NULL && md_orig != NULL; + md = md->next, md_orig = md_orig->next) + { + BLI_assert(md->type == md_orig->type && STREQ(md->name, md_orig->name)); + MEM_SAFE_FREE(md_orig->error); + if (md->error != NULL) { + md_orig->error = BLI_strdup(md->error); + } + } } bool BKE_object_eval_proxy_copy(Depsgraph *depsgraph, |