diff options
author | Antonio Vazquez <blendergit@gmail.com> | 2019-10-11 14:18:39 +0300 |
---|---|---|
committer | Antonio Vazquez <blendergit@gmail.com> | 2019-10-11 14:18:39 +0300 |
commit | 74f9b9d144e517132f36bf372ae8987b2a191dfd (patch) | |
tree | 282220092495099fcffc1be4e3f6d32c4d0bc4bc /source/blender/editors/object | |
parent | 15ffa3e7db86535ea1e1a0c9360cbd0fc9027475 (diff) |
GPencil: Remove curve objects after converting to strokes (unreported)
This was detected fixing T69459
Part of Differential Revision: https://developer.blender.org/D6045
Note: done in a separated commit to keep track of changes done not directly related to bug reported in T69459.
Diffstat (limited to 'source/blender/editors/object')
-rw-r--r-- | source/blender/editors/object/object_add.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c index b430e148d1a..bdb23c5ce6f 100644 --- a/source/blender/editors/object/object_add.c +++ b/source/blender/editors/object/object_add.c @@ -2145,6 +2145,7 @@ static int convert_exec(bContext *C, wmOperator *op) const short target = RNA_enum_get(op->ptr, "target"); bool keep_original = RNA_boolean_get(op->ptr, "keep_original"); int a, mballConverted = 0; + bool gpencilConverted = false; /* don't forget multiple users! */ @@ -2398,6 +2399,7 @@ static int convert_exec(bContext *C, wmOperator *op) copy_v3_v3(gpencil_ob->rot, ob->rot); copy_v3_v3(gpencil_ob->scale, ob->scale); BKE_gpencil_convert_curve(bmain, scene, gpencil_ob, ob, false, false, true); + gpencilConverted = true; } } } @@ -2497,6 +2499,17 @@ static int convert_exec(bContext *C, wmOperator *op) } FOREACH_SCENE_OBJECT_END; } + /* Remove curves converted to Grease Pencil object. */ + if (gpencilConverted) { + FOREACH_SCENE_OBJECT_BEGIN (scene, ob_curve) { + if (ob_curve->type == OB_CURVE) { + if (ob_curve->flag & OB_DONE) { + ED_object_base_free_and_unlink(bmain, scene, ob_curve); + } + } + } + FOREACH_SCENE_OBJECT_END; + } } // XXX ED_object_editmode_enter(C, 0); |