[Bf-blender-cvs] [b394aabb424] soc-2021-curves: Hard coded multi select to shift click
Dilith Jayakody
noreply at git.blender.org
Sat Mar 5 16:40:04 CET 2022
Commit: b394aabb4241bd6d61ebc57bea9bbdd4c3ee95b9
Author: Dilith Jayakody
Date: Fri Feb 25 23:04:22 2022 +0530
Branches: soc-2021-curves
https://developer.blender.org/rBb394aabb4241bd6d61ebc57bea9bbdd4c3ee95b9
Hard coded multi select to shift click
===================================================================
M release/scripts/presets/keyconfig/keymap_data/blender_default.py
M source/blender/editors/curve/editcurve_pen.c
M source/tools
===================================================================
diff --git a/release/scripts/presets/keyconfig/keymap_data/blender_default.py b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
index bdab8d8ebe2..16b55ddd890 100644
--- a/release/scripts/presets/keyconfig/keymap_data/blender_default.py
+++ b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
@@ -7041,7 +7041,7 @@ def km_3d_view_tool_edit_curve_pen(params):
("curve.pen", {"type": params.tool_mouse, "value": 'PRESS', "ctrl": True},
{"properties": [("delete_point", True),]}),
("curve.pen", {"type": params.tool_mouse, "value": 'PRESS', "shift": True},
- {"properties": [("insert_point", True), ("select_multi", True),]}),
+ {"properties": [("insert_point", True),]}),
("curve.pen", {"type": params.tool_mouse, "value": 'DOUBLE_CLICK'},
{"properties": [("toggle_vector", True), ("cycle_handle_type", True),]}),
]},
diff --git a/source/blender/editors/curve/editcurve_pen.c b/source/blender/editors/curve/editcurve_pen.c
index cac33a8dd45..a4bec0f4673 100644
--- a/source/blender/editors/curve/editcurve_pen.c
+++ b/source/blender/editors/curve/editcurve_pen.c
@@ -104,6 +104,8 @@ typedef struct CurvePenData {
bool multi_point;
/* Whether a point has already been selected. */
bool selection_made;
+ /* Whether shift-click was pressed. */
+ bool select_multi;
/* Whether shortcut for toggling free handles was pressed. */
bool free_toggle_pressed;
@@ -1451,13 +1453,6 @@ static int curve_pen_modal(bContext *C, wmOperator *op, const wmEvent *event)
int ret = OPERATOR_RUNNING_MODAL;
- CurvePenData *cpd;
- if (op->customdata == NULL) {
- op->customdata = cpd = MEM_callocN(sizeof(CurvePenData), __func__);
- }
- else {
- cpd = (CurvePenData *)(op->customdata);
- }
/* Distance threshold for mouse clicks to affect the spline or its points */
const float sel_dist_mul = RNA_float_get(op->ptr, "sel_dist_mul");
const float mval_fl[2] = {UNPACK2(event->mval)};
@@ -1467,7 +1462,6 @@ static int curve_pen_modal(bContext *C, wmOperator *op, const wmEvent *event)
const bool insert_point = RNA_boolean_get(op->ptr, "insert_point");
const bool move_seg = RNA_boolean_get(op->ptr, "move_segment");
const bool select_point = RNA_boolean_get(op->ptr, "select_point");
- const bool select_multi = RNA_boolean_get(op->ptr, "select_multi");
const bool move_point = RNA_boolean_get(op->ptr, "move_point");
const bool close_spline = RNA_boolean_get(op->ptr, "close_spline");
const bool toggle_vector = RNA_boolean_get(op->ptr, "toggle_vector");
@@ -1480,6 +1474,15 @@ static int curve_pen_modal(bContext *C, wmOperator *op, const wmEvent *event)
const int link_handles = RNA_enum_get(op->ptr, "link_handles");
const int lock_angle = RNA_enum_get(op->ptr, "lock_angle");
+ CurvePenData *cpd;
+ if (op->customdata == NULL) {
+ op->customdata = cpd = MEM_callocN(sizeof(CurvePenData), __func__);
+ }
+ else {
+ cpd = (CurvePenData *)(op->customdata);
+ cpd->select_multi = event->modifier == KM_SHIFT;
+ }
+
if (!cpd->free_toggle_pressed && is_extra_key_pressed(event, free_toggle)) {
toggle_bezt_free_align_handles(nurbs);
cpd->free_toggle = !cpd->free_toggle;
@@ -1646,7 +1649,7 @@ static int curve_pen_modal(bContext *C, wmOperator *op, const wmEvent *event)
}
if (!cpd->selection_made && !cpd->acted) {
- if (select_multi) {
+ if (cpd->select_multi) {
short bezt_idx;
get_closest_vertex_to_point_in_nurbs(
nurbs, &nu, &bezt, &bp, &bezt_idx, mval_fl, sel_dist_mul, &vc);
@@ -1769,8 +1772,6 @@ void CURVE_OT_pen(wmOperatorType *ot)
ot->srna, "move_segment", false, "Move Segment", "Delete an existing point");
prop = RNA_def_boolean(
ot->srna, "select_point", false, "Select Point", "Select a point or its handles");
- prop = RNA_def_boolean(
- ot->srna, "select_multi", false, "Select Multiple", "Select multiple points");
prop = RNA_def_boolean(
ot->srna, "move_point", false, "Move Point", "Move a point or its handles");
prop = RNA_def_boolean(ot->srna,
diff --git a/source/tools b/source/tools
index f468b49c129..5715a567950 160000
--- a/source/tools
+++ b/source/tools
@@ -1 +1 @@
-Subproject commit f468b49c129ebbe1231e700604926b7734178fd9
+Subproject commit 5715a567950258c17089c9b9cb175a6ef8c602ce
More information about the Bf-blender-cvs
mailing list