Fix Pen tool creates single anchor path (#2511)

* Delete layer if path has a single anchor

* Remove unnecessary layer reference from pen state
This commit is contained in:
Mateo 2025-04-03 16:41:51 -03:00 committed by GitHub
parent 6de235f80c
commit c486c6e3e3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1601,6 +1601,8 @@ impl Fsm for PenToolFsmState {
PenToolFsmState::Ready
}
(_, PenToolMessage::Abort) => {
let should_delete_layer = tool_data.latest_points.len() == 1;
responses.add(DocumentMessage::AbortTransaction);
tool_data.handle_end = None;
tool_data.latest_points.clear();
@ -1608,6 +1610,13 @@ impl Fsm for PenToolFsmState {
tool_data.draw_mode = DrawMode::BreakPath;
tool_data.snap_manager.cleanup(responses);
if should_delete_layer && layer.is_some() {
responses.add(NodeGraphMessage::DeleteNodes {
node_ids: vec![layer.unwrap().to_node()],
delete_children: true,
});
responses.add(NodeGraphMessage::RunDocumentGraph);
}
responses.add(OverlaysMessage::Draw);
PenToolFsmState::Ready