[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