Fix feather points when deleting first vertex of a closed mask path

Found while testing crates/keyframe/src/value.rs:79-95 (ShapePath::feather_after_remove, called from crates/engine/src/commands/mask.rs:330)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
NetterSilver
2026-10-20 18:51:57 +02:00
co-authored by Claude Haiku 5.5
parent 9db7f3b217
commit b3ff5d4aa6
2 changed files with 26 additions and 1 deletions
+12 -1
View File
@@ -82,7 +82,18 @@ impl ShapePath {
if i == 0 && f.segment == 0 && !self.closed {
return false;
}
if i > 0 && f.segment == i - 1 {
if i == 0 && self.closed && segs > 0 {
// The old closing segment and segment 0 merge into the new closing one.
if f.segment == segs {
f.segment = segs - 1;
f.t *= 0.5;
} else if f.segment == 0 {
f.segment = segs - 1;
f.t = 0.5 + f.t * 0.5;
} else {
f.segment -= 1;
}
} else if i > 0 && f.segment == i - 1 {
f.t *= 0.5;
} else if f.segment == i && i > 0 {
f.segment = i - 1;