[Bf-blender-cvs] [477fbf4e44d] soc-2020-greasepencil-curve: Gpencil: WIP: Update "enter curve edit mode" op

Falk David noreply at git.blender.org
Wed Jul 15 12:11:29 CEST 2020


Commit: 477fbf4e44d61633e42bbab2973a0148e552ddd7
Author: Falk David
Date:   Wed Jul 15 12:10:33 2020 +0200
Branches: soc-2020-greasepencil-curve
https://developer.blender.org/rB477fbf4e44d61633e42bbab2973a0148e552ddd7

Gpencil: WIP: Update "enter curve edit mode" op

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

M	source/blender/editors/gpencil/gpencil_edit_curve.c

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

diff --git a/source/blender/editors/gpencil/gpencil_edit_curve.c b/source/blender/editors/gpencil/gpencil_edit_curve.c
index b8d2ecf2474..64e5867309f 100644
--- a/source/blender/editors/gpencil/gpencil_edit_curve.c
+++ b/source/blender/editors/gpencil/gpencil_edit_curve.c
@@ -70,7 +70,7 @@ static bool gpencil_curve_edit_mode_poll(bContext *C)
   return (gpl != NULL);
 }
 
-static int gpencil_stroke_enter_editcurve_mode(bContext *C, wmOperator *op)
+static int gpencil_stroke_enter_editcurve_mode_exec(bContext *C, wmOperator *op)
 {
   Object *ob = CTX_data_active_object(C);
   bGPdata *gpd = ob->data;
@@ -90,10 +90,10 @@ static int gpencil_stroke_enter_editcurve_mode(bContext *C, wmOperator *op)
           if ((gps->flag & GP_STROKE_SELECT && gps->editcurve == NULL) ||
               (gps->editcurve != NULL && gps->editcurve->flag & GP_CURVE_NEEDS_STROKE_UPDATE)) {
             BKE_gpencil_stroke_editcurve_update(gps, gpd->curve_edit_threshold);
-            if (gps->editcurve != NULL) {
-              gps->editcurve->resolution = gpd->editcurve_resolution;
-              gps->editcurve->flag |= GP_STROKE_NEEDS_CURVE_UPDATE;
-            }
+            gps->editcurve->resolution = gpd->editcurve_resolution;
+            /* Update the selection from the stroke to the curve. */
+            BKE_gpencil_editcurve_stroke_sync_selection(gps, gps->editcurve);
+            gps->flag |= GP_STROKE_NEEDS_CURVE_UPDATE;
             BKE_gpencil_stroke_geometry_update(gpd, gps);
           }
         }
@@ -101,6 +101,8 @@ static int gpencil_stroke_enter_editcurve_mode(bContext *C, wmOperator *op)
     }
   }
 
+  gpd->flag |= GP_DATA_CURVE_EDIT_MODE;
+
   /* notifiers */
   DEG_id_tag_update(&gpd->id, ID_RECALC_TRANSFORM | ID_RECALC_GEOMETRY);
   WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
@@ -118,7 +120,7 @@ void GPENCIL_OT_stroke_enter_editcurve_mode(wmOperatorType *ot)
   ot->description = "Called to transform a stroke into a curve";
 
   /* api callbacks */
-  ot->exec = gpencil_stroke_enter_editcurve_mode;
+  ot->exec = gpencil_stroke_enter_editcurve_mode_exec;
   ot->poll = gpencil_active_layer_poll;
 
   /* flags */



More information about the Bf-blender-cvs mailing list