forked from bartvdbraak/blender
Maksing: fix issue when it's not possible to drag right handle of aligned handles
This commit is contained in:
parent
6316306cc0
commit
f06a1b77e2
@ -503,10 +503,27 @@ static bool slide_point_check_initial_feather(MaskSpline *spline)
|
||||
}
|
||||
|
||||
static void select_sliding_point(Mask *mask, MaskLayer *mask_layer, MaskSpline *spline,
|
||||
MaskSplinePoint *point)
|
||||
MaskSplinePoint *point, eMaskWhichHandle which_handle)
|
||||
{
|
||||
ED_mask_select_toggle_all(mask, SEL_DESELECT);
|
||||
|
||||
switch (which_handle) {
|
||||
case MASK_WHICH_HANDLE_NONE:
|
||||
BKE_mask_point_select_set(point, TRUE);
|
||||
break;
|
||||
case MASK_WHICH_HANDLE_LEFT:
|
||||
point->bezt.f1 |= SELECT;
|
||||
break;
|
||||
case MASK_WHICH_HANDLE_RIGHT:
|
||||
point->bezt.f3 |= SELECT;
|
||||
break;
|
||||
case MASK_WHICH_HANDLE_STICK:
|
||||
point->bezt.f1 |= SELECT;
|
||||
point->bezt.f3 |= SELECT;
|
||||
break;
|
||||
default:
|
||||
BLI_assert(!"Unexpected situation in select_sliding_point()");
|
||||
}
|
||||
|
||||
mask_layer->act_spline = spline;
|
||||
mask_layer->act_point = point;
|
||||
@ -581,7 +598,7 @@ static void *slide_point_customdata(bContext *C, wmOperator *op, const wmEvent *
|
||||
}
|
||||
|
||||
if (action != SLIDE_ACTION_NONE) {
|
||||
select_sliding_point(mask, masklay, spline, point);
|
||||
select_sliding_point(mask, masklay, spline, point, which_handle);
|
||||
|
||||
customdata = MEM_callocN(sizeof(SlidePointData), "mask slide point data");
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user