Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2014-03-31 12:46:30 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2014-03-31 13:00:40 +0400
commitf06a1b77e291c595f3928d952cc9f18c04df3ae2 (patch)
treedf43d5e4ca40a1e3f6e622272a513d86073b4655 /source/blender/editors/mask
parent6316306cc07c77d4cf6fff52bc8a35ba102b8f56 (diff)
Maksing: fix issue when it's not possible to drag right handle of aligned handles
Diffstat (limited to 'source/blender/editors/mask')
-rw-r--r--source/blender/editors/mask/mask_ops.c23
1 files changed, 20 insertions, 3 deletions
diff --git a/source/blender/editors/mask/mask_ops.c b/source/blender/editors/mask/mask_ops.c
index e8cd97d8d6a..d170d009af6 100644
--- a/source/blender/editors/mask/mask_ops.c
+++ b/source/blender/editors/mask/mask_ops.c
@@ -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);
- BKE_mask_point_select_set(point, TRUE);
+
+ 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");