[Bf-blender-cvs] [4c5eebadae5] greasepencil-object: GPencil: Fix Box Selection Tool keymaps

Antonio Vazquez noreply at git.blender.org
Thu Nov 7 23:36:42 CET 2019


Commit: 4c5eebadae5561e73c237836d59dba685f13c7a2
Author: Antonio Vazquez
Date:   Thu Nov 7 23:36:35 2019 +0100
Branches: greasepencil-object
https://developer.blender.org/rB4c5eebadae5561e73c237836d59dba685f13c7a2

GPencil: Fix Box Selection Tool keymaps

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

M	release/scripts/presets/keyconfig/keymap_data/blender_default.py
M	release/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py
M	source/blender/editors/gpencil/gpencil_select.c

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

diff --git a/release/scripts/presets/keyconfig/keymap_data/blender_default.py b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
index 894fc2ee5dc..02f543bed01 100644
--- a/release/scripts/presets/keyconfig/keymap_data/blender_default.py
+++ b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
@@ -3320,7 +3320,7 @@ def km_grease_pencil_stroke_sculpt_mode(params):
     return keymap
 
 
-def km_grease_pencil_stroke_weight_mode(_params):
+def km_grease_pencil_stroke_weight_mode(params):
     items = []
     keymap = (
         "Grease Pencil Stroke Weight Mode",
@@ -3347,7 +3347,7 @@ def km_grease_pencil_stroke_weight_mode(_params):
     return keymap
 
 
-def km_grease_pencil_stroke_vertex_mode(_params):
+def km_grease_pencil_stroke_vertex_mode(params):
     items = []
     keymap = (
         "Grease Pencil Stroke Vertex Mode",
@@ -3356,11 +3356,8 @@ def km_grease_pencil_stroke_vertex_mode(_params):
     )
 
     items.extend([
-        # Tint
-        ("gpencil.tint", {"type": 'LEFTMOUSE', "value": 'PRESS'},
-         {"properties": [("wait_for_input", False)]}),
-        ("gpencil.tint", {"type": 'LEFTMOUSE', "value": 'PRESS', "ctrl": True},
-         {"properties": [("wait_for_input", False)]}),
+        # Selection
+        *_grease_pencil_selection(params),
         # Brush strength
         ("wm.radial_control", {"type": 'F', "value": 'PRESS', "shift": True},
          {"properties": [("data_path_primary", 'tool_settings.gpencil_vertex_paint.brush.gpencil_settings.pen_strength')]}),
diff --git a/release/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py b/release/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py
index 6046d9a045e..d0e0c73308a 100644
--- a/release/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py
+++ b/release/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py
@@ -2542,7 +2542,7 @@ def km_grease_pencil_stroke_weight_mode(params):
     return keymap
 
 
-def km_grease_pencil_stroke_vertex_mode(_params):
+def km_grease_pencil_stroke_vertex_mode(params):
     items = []
     keymap = (
         "Grease Pencil Stroke Vertex Mode",
@@ -2551,11 +2551,8 @@ def km_grease_pencil_stroke_vertex_mode(_params):
     )
 
     items.extend([
-        # Tint
-        ("gpencil.tint", {"type": 'LEFTMOUSE', "value": 'PRESS'},
-         {"properties": [("wait_for_input", False)]}),
-        ("gpencil.tint", {"type": 'LEFTMOUSE', "value": 'PRESS', "ctrl": True},
-         {"properties": [("wait_for_input", False)]}),
+        # Selection
+        *_grease_pencil_selection(params),
         # Brush strength
         ("wm.radial_control", {"type": 'F', "value": 'PRESS', "shift": True},
          {"properties": [("data_path_primary", 'tool_settings.gpencil_vertex_paint.brush.gpencil_settings.pen_strength')]}),
diff --git a/source/blender/editors/gpencil/gpencil_select.c b/source/blender/editors/gpencil/gpencil_select.c
index 9723cec4f5c..c7d36c992fd 100644
--- a/source/blender/editors/gpencil/gpencil_select.c
+++ b/source/blender/editors/gpencil/gpencil_select.c
@@ -104,14 +104,20 @@ static int gpencil_select_mode_from_vertex(eGP_Sculpt_SelectMaskFlag mode)
 static bool gpencil_select_poll(bContext *C)
 {
   bGPdata *gpd = ED_gpencil_data_get_active(C);
+  ToolSettings *ts = CTX_data_tool_settings(C);
 
   if (GPENCIL_SCULPT_MODE(gpd)) {
-    ToolSettings *ts = CTX_data_tool_settings(C);
     if (!(GPENCIL_ANY_SCULPT_MASK(ts->gpencil_selectmode_sculpt))) {
       return false;
     }
   }
 
+  if (GPENCIL_VERTEX_MODE(gpd)) {
+    if (!(GPENCIL_ANY_VERTEX_MASK(ts->gpencil_selectmode_vertex))) {
+      return false;
+    }
+  }
+
   /* we just need some visible strokes, and to be in editmode or other modes only to catch event */
   if (GPENCIL_ANY_MODE(gpd)) {
     /* TODO: include a check for visible strokes? */
@@ -1125,9 +1131,16 @@ static int gpencil_generic_select_exec(bContext *C,
   ToolSettings *ts = CTX_data_tool_settings(C);
   ScrArea *sa = CTX_wm_area(C);
 
-  const short selectmode = (ob && ob->mode == OB_MODE_SCULPT_GPENCIL) ?
-                               gpencil_select_mode_from_sculpt(ts->gpencil_selectmode_sculpt) :
-                               ts->gpencil_selectmode_edit;
+  int selectmode;
+  if (ob && ob->mode == OB_MODE_SCULPT_GPENCIL) {
+    selectmode = gpencil_select_mode_from_sculpt(ts->gpencil_selectmode_sculpt);
+  }
+  else if (ob && ob->mode == OB_MODE_VERTEX_GPENCIL) {
+    selectmode = gpencil_select_mode_from_vertex(ts->gpencil_selectmode_vertex);
+  }
+  else {
+    selectmode = ts->gpencil_selectmode_edit;
+  }
 
   const bool strokemode = ((selectmode == GP_SELECTMODE_STROKE) &&
                            ((gpd->flag & GP_DATA_STROKE_PAINTMODE) == 0));
@@ -1444,6 +1457,10 @@ static int gpencil_select_exec(bContext *C, wmOperator *op)
     whole = (bool)(gpencil_select_mode_from_sculpt(ts->gpencil_selectmode_sculpt) ==
                    GP_SELECTMODE_STROKE);
   }
+  else if ((ob) && (ob->mode == OB_MODE_VERTEX_GPENCIL)) {
+    whole = (bool)(gpencil_select_mode_from_vertex(ts->gpencil_selectmode_sculpt) ==
+                   GP_SELECTMODE_STROKE);
+  }
   else {
     whole = (bool)(ts->gpencil_selectmode_edit == GP_SELECTMODE_STROKE);
   }
@@ -1551,9 +1568,16 @@ static int gpencil_select_exec(bContext *C, wmOperator *op)
       hit_stroke->flag |= GP_STROKE_SELECT;
 
       /* expand selection to segment */
-      const short selectmode = (ob && ob->mode == OB_MODE_SCULPT_GPENCIL) ?
-                                   gpencil_select_mode_from_sculpt(ts->gpencil_selectmode_sculpt) :
-                                   ts->gpencil_selectmode_edit;
+      int selectmode;
+      if (ob && ob->mode == OB_MODE_SCULPT_GPENCIL) {
+        selectmode = gpencil_select_mode_from_sculpt(ts->gpencil_selectmode_sculpt);
+      }
+      else if (ob && ob->mode == OB_MODE_VERTEX_GPENCIL) {
+        selectmode = gpencil_select_mode_from_vertex(ts->gpencil_selectmode_vertex);
+      }
+      else {
+        selectmode = ts->gpencil_selectmode_edit;
+      }
 
       if (selectmode == GP_SELECTMODE_SEGMENT) {
         float r_hita[3], r_hitb[3];



More information about the Bf-blender-cvs mailing list