[Bf-blender-cvs] [34d58b74a55] soc-2021-curves: Change link handles functionality to toggle
Dilith Jayakody
noreply at git.blender.org
Fri Jan 21 19:33:40 CET 2022
Commit: 34d58b74a5513e4e4f191d0a77114be5474e8453
Author: Dilith Jayakody
Date: Fri Jan 21 07:39:15 2022 +0530
Branches: soc-2021-curves
https://developer.blender.org/rB34d58b74a5513e4e4f191d0a77114be5474e8453
Change link handles functionality to toggle
===================================================================
M source/blender/editors/curve/editcurve_pen.c
===================================================================
diff --git a/source/blender/editors/curve/editcurve_pen.c b/source/blender/editors/curve/editcurve_pen.c
index 9ad17ea523a..c65ccc675b3 100644
--- a/source/blender/editors/curve/editcurve_pen.c
+++ b/source/blender/editors/curve/editcurve_pen.c
@@ -98,6 +98,10 @@ typedef struct CurvePenData {
bool spline_nearby;
/* Whether shortcut for toggling free handles was pressed. */
bool free_toggle_pressed;
+ /* Whether shortcut for linking handles was pressed. */
+ bool link_handles_pressed;
+ /* Whether the current state of the moved handle is linked. */
+ bool link_handles;
/* Whether some action was done. Used for select. */
bool acted;
/* Whether a point was found underneath the mouse. */
@@ -1675,8 +1679,12 @@ static int curve_pen_modal(bContext *C, wmOperator *op, const wmEvent *event)
cpd->dragging = true;
}
cpd->free_toggle_pressed = is_extra_key_pressed(event, free_toggle);
+ if (!cpd->link_handles_pressed && is_extra_key_pressed(event, link_handles)) {
+ move_all_selected_points(nurbs, false, true, event, &vc);
+ cpd->link_handles = true;
+ }
+ cpd->link_handles_pressed = is_extra_key_pressed(event, link_handles);
const bool move_entire_pressed = is_extra_key_pressed(event, move_entire);
- const bool link_handles_pressed = is_extra_key_pressed(event, link_handles);
if (ELEM(event->type, MOUSEMOVE, INBETWEEN_MOUSEMOVE)) {
if (!cpd->dragging && WM_event_drag_test(event, event->prev_click_xy) &&
@@ -1698,7 +1706,7 @@ static int curve_pen_modal(bContext *C, wmOperator *op, const wmEvent *event)
* control point. */
else if (cpd->new_point) {
if (is_extra_key_pressed(event, move_entire)) {
- move_all_selected_points(nurbs, move_entire_pressed, link_handles_pressed, event, &vc);
+ move_all_selected_points(nurbs, move_entire_pressed, cpd->link_handles, event, &vc);
}
else {
move_new_bezt_handles_to_mouse(event, &vc, nurbs);
@@ -1708,7 +1716,7 @@ static int curve_pen_modal(bContext *C, wmOperator *op, const wmEvent *event)
else if ((select_point || move_point) && !cpd->spline_nearby) {
if (cpd->found_point) {
if (move_point) {
- move_all_selected_points(nurbs, move_entire_pressed, link_handles_pressed, event, &vc);
+ move_all_selected_points(nurbs, move_entire_pressed, cpd->link_handles, event, &vc);
cpd->acted = true;
}
}
More information about the Bf-blender-cvs
mailing list