From 0ee661875076d91a60d7f1ebd5dc79ed968df270 Mon Sep 17 00:00:00 2001 From: Annonnymmousss Date: Tue, 10 Mar 2026 15:46:57 +0530 Subject: [PATCH] fix : spline disappearing on tool switch --- .../tool/tool_messages/spline_tool.rs | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/editor/src/messages/tool/tool_messages/spline_tool.rs b/editor/src/messages/tool/tool_messages/spline_tool.rs index 345b5a058e..1eb94ef1e1 100644 --- a/editor/src/messages/tool/tool_messages/spline_tool.rs +++ b/editor/src/messages/tool/tool_messages/spline_tool.rs @@ -479,8 +479,27 @@ impl Fsm for SplineToolFsmState { SplineToolFsmState::MergingEndpoints } (SplineToolFsmState::Drawing, SplineToolMessage::Abort) => { - responses.add(DocumentMessage::AbortTransaction); - SplineToolFsmState::Ready + if tool_data.points.len() >= 2 { + responses.add_front(DocumentMessage::CommitTransaction); + if let Some(layer) = tool_data.current_layer { + if let Some(id) = tool_data.preview_segment.take() { + responses.add_front(GraphOperationMessage::Vector { + layer, + modification_type: VectorModificationType::RemoveSegment { id }, + }); + } + if let Some(id) = tool_data.preview_point.take() { + responses.add_front(GraphOperationMessage::Vector { + layer, + modification_type: VectorModificationType::RemovePoint { id }, + }); + } + } + SplineToolFsmState::Ready + } else { + responses.add(DocumentMessage::AbortTransaction); + SplineToolFsmState::Ready + } } (_, SplineToolMessage::WorkingColorChanged) => { responses.add(SplineToolMessage::UpdateOptions {