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
This commit is contained in:
Philipp Oeser 2020-08-28 13:21:08 +02:00
parent d3f2037966
commit 65dcf812a5
Notes: blender-bot 2023-02-14 08:38:11 +01:00
Referenced by issue #80182, Curve [Edit Mode] : Can't Deselect Control Point with Select Box
1 changed files with 4 additions and 5 deletions

View File

@ -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])