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

Lines changed: 6 additions & 1 deletion
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

Lines changed: 19 additions & 2 deletions
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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy