From 52cfc620c8cc3125282d8dd66df312ffb576569c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 11 Feb 2021 12:34:41 +1100 Subject: Fix T83013: Annotation with hidden object in sculpt mode crashes This just avoids the crash, the annotation tool still doesn't work. Larger changes will be needed to resolve this, see T85532. --- source/blender/editors/transform/transform_convert.c | 2 +- source/blender/editors/transform/transform_convert.h | 2 +- source/blender/editors/transform/transform_convert_gpencil.c | 2 +- source/blender/editors/transform/transform_convert_particle.c | 4 ++-- source/blender/editors/transform/transform_convert_sculpt.c | 10 ++++++---- 5 files changed, 11 insertions(+), 9 deletions(-) (limited to 'source/blender/editors/transform') diff --git a/source/blender/editors/transform/transform_convert.c b/source/blender/editors/transform/transform_convert.c index fb365da6b43..3ea0b0a0a70 100644 --- a/source/blender/editors/transform/transform_convert.c +++ b/source/blender/editors/transform/transform_convert.c @@ -1246,7 +1246,7 @@ void createTransData(bContext *C, TransInfo *t) init_prop_edit = false; break; case TC_PARTICLE_VERTS: - createTransParticleVerts(C, t); + createTransParticleVerts(t); break; case TC_SCULPT: createTransSculpt(C, t); diff --git a/source/blender/editors/transform/transform_convert.h b/source/blender/editors/transform/transform_convert.h index be4322b42e2..466bfd6b226 100644 --- a/source/blender/editors/transform/transform_convert.h +++ b/source/blender/editors/transform/transform_convert.h @@ -224,7 +224,7 @@ void createTransPaintCurveVerts(bContext *C, TransInfo *t); void flushTransPaintCurve(TransInfo *t); /* transform_convert_particle.c */ -void createTransParticleVerts(bContext *C, TransInfo *t); +void createTransParticleVerts(TransInfo *t); void recalcData_particles(TransInfo *t); /* transform_convert_sculpt.c */ diff --git a/source/blender/editors/transform/transform_convert_gpencil.c b/source/blender/editors/transform/transform_convert_gpencil.c index 0a742ec4470..deb18b50a22 100644 --- a/source/blender/editors/transform/transform_convert_gpencil.c +++ b/source/blender/editors/transform/transform_convert_gpencil.c @@ -688,7 +688,7 @@ void createTransGPencil(bContext *C, TransInfo *t) Depsgraph *depsgraph = CTX_data_ensure_evaluated_depsgraph(C); const Scene *scene = CTX_data_scene(C); ToolSettings *ts = scene->toolsettings; - Object *obact = CTX_data_active_object(C); + Object *obact = OBACT(t->view_layer); bGPdata *gpd = obact->data; BLI_assert(gpd != NULL); diff --git a/source/blender/editors/transform/transform_convert_particle.c b/source/blender/editors/transform/transform_convert_particle.c index fbe9c07ebe9..6366eff2f4c 100644 --- a/source/blender/editors/transform/transform_convert_particle.c +++ b/source/blender/editors/transform/transform_convert_particle.c @@ -45,13 +45,13 @@ * * \{ */ -void createTransParticleVerts(bContext *C, TransInfo *t) +void createTransParticleVerts(TransInfo *t) { FOREACH_TRANS_DATA_CONTAINER (t, tc) { TransData *td = NULL; TransDataExtension *tx; - Object *ob = CTX_data_active_object(C); + Object *ob = OBACT(t->view_layer); ParticleEditSettings *pset = PE_settings(t->scene); PTCacheEdit *edit = PE_get_current(t->depsgraph, t->scene, ob); ParticleSystem *psys = NULL; diff --git a/source/blender/editors/transform/transform_convert_sculpt.c b/source/blender/editors/transform/transform_convert_sculpt.c index 0ac6bd9264f..70fec49d77d 100644 --- a/source/blender/editors/transform/transform_convert_sculpt.c +++ b/source/blender/editors/transform/transform_convert_sculpt.c @@ -49,7 +49,7 @@ void createTransSculpt(bContext *C, TransInfo *t) return; } - Object *ob = CTX_data_active_object(t->context); + Object *ob = OBACT(t->view_layer); SculptSession *ss = ob->sculpt; { @@ -101,7 +101,7 @@ void createTransSculpt(bContext *C, TransInfo *t) copy_m3_m4(td->axismtx, ob->obmat); BLI_assert(!(t->options & CTX_PAINT_CURVE)); - ED_sculpt_init_transform(C); + ED_sculpt_init_transform(C, ob); } /** \} */ @@ -113,7 +113,8 @@ void createTransSculpt(bContext *C, TransInfo *t) void recalcData_sculpt(TransInfo *t) { - ED_sculpt_update_modal_transform(t->context); + Object *ob = OBACT(t->view_layer); + ED_sculpt_update_modal_transform(t->context, ob); } void special_aftertrans_update__sculpt(bContext *C, TransInfo *t) @@ -124,8 +125,9 @@ void special_aftertrans_update__sculpt(bContext *C, TransInfo *t) return; } + Object *ob = OBACT(t->view_layer); BLI_assert(!(t->options & CTX_PAINT_CURVE)); - ED_sculpt_end_transform(C); + ED_sculpt_end_transform(C, ob); } /** \} */ -- cgit v1.2.3