Skip to content

Commit f1fdcf3

Browse files
Abhinavpatel00Keavon
authored andcommitted
fixes freehand tool and line tool to not make empty layers
1 parent 5e0e11b commit f1fdcf3

File tree

2 files changed

+25
-3
lines changed

2 files changed

+25
-3
lines changed

editor/src/messages/tool/tool_messages/freehand_tool.rs

+6-1
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,12 @@ impl Fsm for FreehandToolFsmState {
264264
if tool_data.dragged {
265265
responses.add(DocumentMessage::CommitTransaction);
266266
} else {
267-
responses.add(DocumentMessage::EndTransaction);
267+
if let Some(layer) = tool_data.layer {
268+
responses.add(NodeGraphMessage::DeleteNodes {
269+
node_ids: vec![layer.to_node()],
270+
delete_children: true,
271+
});
272+
}
268273
}
269274

270275
tool_data.end_point = None;

editor/src/messages/tool/tool_messages/line_tool.rs

+19-2
Original file line numberDiff line numberDiff line change
@@ -319,10 +319,27 @@ impl Fsm for LineToolFsmState {
319319
}
320320
(LineToolFsmState::Drawing, LineToolMessage::DragStop) => {
321321
tool_data.snap_manager.cleanup(responses);
322-
tool_data.editing_layer.take();
323-
input.mouse.finish_transaction(tool_data.drag_start, responses);
322+
323+
if let Some(layer) = tool_data.editing_layer.take() {
324+
let Some(&[start, end]) = tool_data.selected_layers_with_position.get(&layer) else {
325+
input.mouse.finish_transaction(tool_data.drag_start, responses);
326+
return LineToolFsmState::Ready;
327+
};
328+
329+
if start.abs_diff_eq(end, f64::EPSILON * 1000.) {
330+
responses.add(NodeGraphMessage::DeleteNodes {
331+
node_ids: vec![layer.to_node()],
332+
delete_children: true,
333+
});
334+
responses.add(DocumentMessage::AbortTransaction);
335+
} else {
336+
input.mouse.finish_transaction(tool_data.drag_start, responses);
337+
}
338+
}
339+
324340
LineToolFsmState::Ready
325341
}
342+
326343
(LineToolFsmState::Drawing, LineToolMessage::Abort) => {
327344
tool_data.snap_manager.cleanup(responses);
328345
tool_data.editing_layer.take();

0 commit comments

Comments
 (0)