From 0be4b0f7a53b90603cc781a48a8b837ee775f87f Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Tue, 1 May 2018 11:02:29 +0200 Subject: Fix edit mesh selection with copy-on-write enabled --- source/blender/editors/space_view3d/view3d_draw_legacy.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'source/blender/editors/space_view3d/view3d_draw_legacy.c') diff --git a/source/blender/editors/space_view3d/view3d_draw_legacy.c b/source/blender/editors/space_view3d/view3d_draw_legacy.c index 15359dcd6d6..5b0f50b7a68 100644 --- a/source/blender/editors/space_view3d/view3d_draw_legacy.c +++ b/source/blender/editors/space_view3d/view3d_draw_legacy.c @@ -166,21 +166,23 @@ static void backdrawview3d( Object *obact, Object *obedit) { RegionView3D *rv3d = ar->regiondata; + Scene *scene_eval = (Scene *)DEG_get_evaluated_id(depsgraph, &scene->id); + Object *obact_eval = DEG_get_evaluated_object(depsgraph, obact); BLI_assert(ar->regiontype == RGN_TYPE_WINDOW); - if (obact && (obact->mode & (OB_MODE_VERTEX_PAINT | OB_MODE_WEIGHT_PAINT) || - BKE_paint_select_face_test(obact))) + if (obact_eval && (obact_eval->mode & (OB_MODE_VERTEX_PAINT | OB_MODE_WEIGHT_PAINT) || + BKE_paint_select_face_test(obact_eval))) { /* do nothing */ } /* texture paint mode sampling */ - else if (obact && (obact->mode & OB_MODE_TEXTURE_PAINT) && + else if (obact_eval && (obact_eval->mode & OB_MODE_TEXTURE_PAINT) && (v3d->drawtype > OB_WIRE)) { /* do nothing */ } - else if ((obact && (obact->mode & OB_MODE_PARTICLE_EDIT)) && + else if ((obact_eval && (obact_eval->mode & OB_MODE_PARTICLE_EDIT)) && V3D_IS_ZBUF(v3d)) { /* do nothing */ @@ -260,8 +262,8 @@ static void backdrawview3d( G.f |= G_BACKBUFSEL; - if (obact && ((obact->base_flag & BASE_VISIBLED) != 0)) { - draw_object_backbufsel(depsgraph, scene, v3d, rv3d, obact); + if (obact_eval && ((obact_eval->base_flag & BASE_VISIBLED) != 0)) { + draw_object_backbufsel(depsgraph, scene_eval, v3d, rv3d, obact_eval); } if (rv3d->gpuoffscreen) -- cgit v1.2.3