[Bf-blender-cvs] [8651ddeb0ea] temp-object-multi-mode: Lasso Select support for multi-object edit

Campbell Barton noreply at git.blender.org
Sun Mar 11 06:56:43 CET 2018


Commit: 8651ddeb0eacda411681f20a8a00d8bbc98880af
Author: Campbell Barton
Date:   Sun Mar 11 17:03:35 2018 +1100
Branches: temp-object-multi-mode
https://developer.blender.org/rB8651ddeb0eacda411681f20a8a00d8bbc98880af

Lasso Select support for multi-object edit

===================================================================

M	source/blender/editors/space_view3d/view3d_select.c

===================================================================

diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c
index 85df9fb706e..c0f6ae753b6 100644
--- a/source/blender/editors/space_view3d/view3d_select.c
+++ b/source/blender/editors/space_view3d/view3d_select.c
@@ -858,6 +858,12 @@ static void view3d_lasso_select(
 		}
 	}
 	else { /* Edit Mode */
+
+		/* don't indent to avoid diff noise! */
+		FOREACH_OBJECT_IN_MODE_BEGIN (eval_ctx.view_layer, eval_ctx.object_mode, ob_iter) {
+		ED_view3d_viewcontext_init_object(vc, ob_iter);
+		/* --- */
+
 		switch (vc->obedit->type) {
 			case OB_MESH:
 				do_lasso_select_mesh(&eval_ctx, vc, mcords, moves, extend, select);
@@ -881,6 +887,8 @@ static void view3d_lasso_select(
 		}
 
 		WM_event_add_notifier(C, NC_GEOM | ND_SELECT, vc->obedit->data);
+
+		} FOREACH_OBJECT_IN_MODE_END;
 	}
 }
 
@@ -2151,12 +2159,13 @@ static int view3d_borderselect_exec(bContext *C, wmOperator *op)
 	extend = RNA_boolean_get(op->ptr, "extend");
 	WM_operator_properties_border_to_rcti(op, &rect);
 
-	/* don't indent to avoid diff noise! */
-	FOREACH_OBJECT_IN_MODE_BEGIN (eval_ctx.view_layer, eval_ctx.object_mode, ob_iter) {
-	ED_view3d_viewcontext_init_object(&vc, ob_iter);
-	/* --- */
-
 	if (vc.obedit) {
+
+		/* don't indent to avoid diff noise! */
+		FOREACH_OBJECT_IN_MODE_BEGIN (eval_ctx.view_layer, eval_ctx.object_mode, ob_iter) {
+		ED_view3d_viewcontext_init_object(&vc, ob_iter);
+		/* --- */
+
 		switch (vc.obedit->type) {
 			case OB_MESH:
 				vc.em = BKE_editmesh_from_object(vc.obedit);
@@ -2194,7 +2203,7 @@ static int view3d_borderselect_exec(bContext *C, wmOperator *op)
 			default:
 				assert(!"border select on incorrect object type");
 				break;
-		}
+		}} FOREACH_OBJECT_IN_MODE_END;
 	}
 	else {  /* no editmode, unified for bones and objects */
 		if (vc.obact && eval_ctx.object_mode & OB_MODE_SCULPT) {
@@ -2212,7 +2221,7 @@ static int view3d_borderselect_exec(bContext *C, wmOperator *op)
 		else { /* object mode with none active */
 			ret |= do_object_pose_box_select(C, &vc, &rect, select, extend);
 		}
-	}} FOREACH_OBJECT_IN_MODE_END;
+	}
 
 	if (ret & OPERATOR_FINISHED) {
 		ret = OPERATOR_FINISHED;



More information about the Bf-blender-cvs mailing list