diff options
Diffstat (limited to 'source/blender/editors/space_view3d/view3d_select.c')
-rw-r--r-- | source/blender/editors/space_view3d/view3d_select.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c index 1f1317bde2c..7fdf0dfce90 100644 --- a/source/blender/editors/space_view3d/view3d_select.c +++ b/source/blender/editors/space_view3d/view3d_select.c @@ -533,7 +533,7 @@ static void do_lasso_select_mesh(ViewContext *vc, const int mcords[][2], short m EDBM_selectmode_flush(vc->em); } -static void do_lasso_select_curve__doSelect(void *userData, Nurb *UNUSED(nu), BPoint *bp, BezTriple *bezt, int beztindex, const float screen_co[2]) +static void do_lasso_select_curve__doSelect(struct ViewContext* vc, void *userData, Nurb *UNUSED(nu), BPoint *bp, BezTriple *bezt, int beztindex, const float screen_co[2]) { LassoSelectUserData *data = userData; Object *obedit = data->vc->obedit; @@ -1706,7 +1706,7 @@ static int do_paintvert_box_select(ViewContext *vc, rcti *rect, bool select, boo return OPERATOR_FINISHED; } -static void do_nurbs_box_select__doSelect(void *userData, Nurb *UNUSED(nu), BPoint *bp, BezTriple *bezt, int beztindex, const float screen_co[2]) +static void do_nurbs_box_select__doSelect(struct ViewContext* vc, void *userData, Nurb *UNUSED(nu), BPoint *bp, BezTriple *bezt, int beztindex, const float screen_co[2]) { BoxSelectUserData *data = userData; Object *obedit = data->vc->obedit; @@ -2227,6 +2227,7 @@ static int view3d_select_exec(bContext *C, wmOperator *op) bool toggle = RNA_boolean_get(op->ptr, "toggle"); bool center = RNA_boolean_get(op->ptr, "center"); bool enumerate = RNA_boolean_get(op->ptr, "enumerate"); + bool alt = RNA_int_get(op->ptr, "alt"); /* only force object select for editmode to support vertex parenting, * or paint-select to allow pose bone select with vert/face select */ bool object = (RNA_boolean_get(op->ptr, "object") && @@ -2260,7 +2261,7 @@ static int view3d_select_exec(bContext *C, wmOperator *op) else if (obedit->type == OB_LATTICE) retval = mouse_lattice(C, location, extend, deselect, toggle); else if (ELEM(obedit->type, OB_CURVE, OB_SURF)) - retval = mouse_nurb(C, location, extend, deselect, toggle); + retval = mouse_nurb(C, location, extend, deselect, toggle, alt); else if (obedit->type == OB_MBALL) retval = mouse_mball(C, location, extend, deselect, toggle); else if (obedit->type == OB_FONT) @@ -2288,6 +2289,7 @@ static int view3d_select_exec(bContext *C, wmOperator *op) static int view3d_select_invoke(bContext *C, wmOperator *op, const wmEvent *event) { RNA_int_set_array(op->ptr, "location", event->mval); + RNA_int_set(op->ptr, "alt", event->alt); return view3d_select_exec(C, op); } @@ -2315,6 +2317,7 @@ void VIEW3D_OT_select(wmOperatorType *ot) RNA_def_boolean(ot->srna, "center", 0, "Center", "Use the object center when selecting, in editmode used to extend object selection"); RNA_def_boolean(ot->srna, "enumerate", 0, "Enumerate", "List objects under the mouse (object mode only)"); RNA_def_boolean(ot->srna, "object", 0, "Object", "Use object selection (editmode only)"); + RNA_def_int(ot->srna, "alt", 0, 0, 10, "AltKey", "Invoked with Alt pressed (loop select mode).", 0, 10); prop = RNA_def_int_vector(ot->srna, "location", 2, NULL, INT_MIN, INT_MAX, "Location", "Mouse location", INT_MIN, INT_MAX); RNA_def_property_flag(prop, PROP_HIDDEN); @@ -2477,7 +2480,7 @@ static void paint_vertsel_circle_select(ViewContext *vc, const bool select, cons } -static void nurbscurve_circle_doSelect(void *userData, Nurb *UNUSED(nu), BPoint *bp, BezTriple *bezt, int beztindex, const float screen_co[2]) +static void nurbscurve_circle_doSelect(struct ViewContext* vc, void *userData, Nurb *UNUSED(nu), BPoint *bp, BezTriple *bezt, int beztindex, const float screen_co[2]) { CircleSelectUserData *data = userData; Object *obedit = data->vc->obedit; |