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:
authorLaurynas Duburas <laurynas>2022-10-08 00:33:50 +0300
committerHans Goudey <h.goudey@me.com>2022-10-08 00:33:50 +0300
commitf3f0ea8dc27e457f61667eb24c476646c46ae0a9 (patch)
tree19e54ff8bb9629fc90878cd702739ac59f482bb7 /source/blender/editors/curve
parentd779792977d3b6bd941eb5359cb9d982b1d22458 (diff)
Curve: Retain active NURBS curve after point deletion
Before, the active spline index and the active point index were always cleared. Now the active index is only cleared when the curve/surface is deleted. This was accomplished by making the surface patch delete function handle that correctly. The spline deletion already handled it. This fixes only vertex deletion mode. Fixes problem mentioned in T101160. Differential Revision: https://developer.blender.org/D16133
Diffstat (limited to 'source/blender/editors/curve')
-rw-r--r--source/blender/editors/curve/editcurve.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/source/blender/editors/curve/editcurve.c b/source/blender/editors/curve/editcurve.c
index cb6652507ed..61e92f0a1c3 100644
--- a/source/blender/editors/curve/editcurve.c
+++ b/source/blender/editors/curve/editcurve.c
@@ -1707,6 +1707,10 @@ static void ed_surf_delete_selected(Object *obedit)
bp++;
}
if (a == 0) {
+ if (cu->actnu == BLI_findindex(editnurb, nu)) {
+ cu->actnu = CU_ACT_NONE;
+ }
+
BLI_remlink(editnurb, nu);
keyIndex_delNurb(cu->editnurb, nu);
BKE_nurb_free(nu);
@@ -6483,6 +6487,7 @@ static int curve_delete_exec(bContext *C, wmOperator *op)
}
else if (type == CURVE_SEGMENT) {
changed = curve_delete_segments(obedit, v3d, false);
+ cu->actnu = CU_ACT_NONE;
}
else {
BLI_assert(0);
@@ -6490,7 +6495,7 @@ static int curve_delete_exec(bContext *C, wmOperator *op)
if (changed) {
changed_multi = true;
- cu->actnu = cu->actvert = CU_ACT_NONE;
+ cu->actvert = CU_ACT_NONE;
if (ED_curve_updateAnimPaths(bmain, obedit->data)) {
WM_event_add_notifier(C, NC_OBJECT | ND_KEYS, obedit);