From 65dcf812a5e33285fb0726ca478210cf4e565a93 Mon Sep 17 00:00:00 2001 From: Philipp Oeser Date: Fri, 28 Aug 2020 13:21:08 +0200 Subject: Fix T80182: Curve [Edit Mode] : Can't Deselect Control Point with Select Box Caused by rB49f59092e7c8: Curves: Implement Handles for selected points only Changes from deselecting all were not considered as changes anymore. Maniphest Tasks: T80182 Differential Revision: https://developer.blender.org/D8744 --- source/blender/editors/space_view3d/view3d_select.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c index 64447015bdc..bcf881bb6cb 100644 --- a/source/blender/editors/space_view3d/view3d_select.c +++ b/source/blender/editors/space_view3d/view3d_select.c @@ -971,7 +971,7 @@ static bool do_lasso_select_curve(ViewContext *vc, /* Deselect items that were not added to selection (indicated by temp flag). */ if (deselect_all) { - BKE_nurbList_flag_set_from_flag(nurbs, BEZT_FLAG_TEMP_TAG, SELECT); + data.is_changed |= BKE_nurbList_flag_set_from_flag(nurbs, BEZT_FLAG_TEMP_TAG, SELECT); } if (data.is_changed) { @@ -2773,7 +2773,7 @@ static bool do_nurbs_box_select(ViewContext *vc, rcti *rect, const eSelectOp sel /* Deselect items that were not added to selection (indicated by temp flag). */ if (deselect_all) { - BKE_nurbList_flag_set_from_flag(nurbs, BEZT_FLAG_TEMP_TAG, SELECT); + data.is_changed |= BKE_nurbList_flag_set_from_flag(nurbs, BEZT_FLAG_TEMP_TAG, SELECT); } BKE_curve_nurb_vert_active_validate(vc->obedit->data); @@ -3699,7 +3699,6 @@ static bool nurbscurve_circle_select(ViewContext *vc, const bool select = (sel_op != SEL_OP_SUB); const bool deselect_all = (sel_op == SEL_OP_SET); CircleSelectUserData data; - bool changed = false; view3d_userdata_circleselect_init(&data, vc, select, mval, rad); @@ -3717,12 +3716,12 @@ static bool nurbscurve_circle_select(ViewContext *vc, /* Deselect items that were not added to selection (indicated by temp flag). */ if (deselect_all) { - BKE_nurbList_flag_set_from_flag(nurbs, BEZT_FLAG_TEMP_TAG, SELECT); + data.is_changed |= BKE_nurbList_flag_set_from_flag(nurbs, BEZT_FLAG_TEMP_TAG, SELECT); } BKE_curve_nurb_vert_active_validate(vc->obedit->data); - return changed || data.is_changed; + return data.is_changed; } static void latticecurve_circle_doSelect(void *userData, BPoint *bp, const float screen_co[2]) -- cgit v1.2.3