diff options
author | Campbell Barton <ideasman42@gmail.com> | 2017-05-06 15:54:28 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2017-05-06 15:54:28 +0300 |
commit | 90ebf4832f8f9745a60300a1f9bad4bab5af52bc (patch) | |
tree | a4e8c9505822040856e12a5718eca4e5a592d82d /source/blender/editors/mask | |
parent | a9572c282038cd9bdbe18e26e7349d8e0f549cb1 (diff) | |
parent | 0eef40ed514b1370c78be6f6479f1d67cc4de88c (diff) |
Merge branch 'master' into blender2.8
Diffstat (limited to 'source/blender/editors/mask')
-rw-r--r-- | source/blender/editors/mask/mask_add.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/source/blender/editors/mask/mask_add.c b/source/blender/editors/mask/mask_add.c index f01af22cec9..69335195b96 100644 --- a/source/blender/editors/mask/mask_add.c +++ b/source/blender/editors/mask/mask_add.c @@ -770,14 +770,17 @@ static int create_primitive_from_points(bContext *C, wmOperator *op, const float new_spline = BKE_mask_spline_add(mask_layer); new_spline->flag = MASK_SPLINE_CYCLIC | SELECT; - new_spline->tot_point = num_points; new_spline->points = MEM_recallocN(new_spline->points, - sizeof(MaskSplinePoint) * new_spline->tot_point); + sizeof(MaskSplinePoint) * num_points); mask_layer->act_spline = new_spline; mask_layer->act_point = NULL; + const int spline_index = BKE_mask_layer_shape_spline_to_index(mask_layer, new_spline); + for (i = 0; i < num_points; i++) { + new_spline->tot_point = i + 1; + MaskSplinePoint *new_point = &new_spline->points[i]; BKE_mask_parent_init(&new_point->parent); @@ -788,6 +791,12 @@ static int create_primitive_from_points(bContext *C, wmOperator *op, const float new_point->bezt.h1 = handle_type; new_point->bezt.h2 = handle_type; BKE_mask_point_select_set(new_point, true); + + if (mask_layer->splines_shapes.first) { + BKE_mask_layer_shape_changed_add(mask_layer, + spline_index + i, + true, true); + } } WM_event_add_notifier(C, NC_MASK | NA_EDITED, mask); |