diff --git a/editor/src/messages/portfolio/document/document_message_handler.rs b/editor/src/messages/portfolio/document/document_message_handler.rs index 461e443a35..ce73bab2a5 100644 --- a/editor/src/messages/portfolio/document/document_message_handler.rs +++ b/editor/src/messages/portfolio/document/document_message_handler.rs @@ -311,6 +311,7 @@ impl MessageHandler> for DocumentMes } } DocumentMessage::RemoveArtboards => { + responses.add(DocumentMessage::AddTransaction); responses.add(GraphOperationMessage::RemoveArtboards); } DocumentMessage::ClearLayersPanel => { diff --git a/editor/src/messages/portfolio/document/graph_operation/graph_operation_message_handler.rs b/editor/src/messages/portfolio/document/graph_operation/graph_operation_message_handler.rs index 631bc1250b..818c751b92 100644 --- a/editor/src/messages/portfolio/document/graph_operation/graph_operation_message_handler.rs +++ b/editor/src/messages/portfolio/document/graph_operation/graph_operation_message_handler.rs @@ -1,6 +1,7 @@ use super::transform_utils; use super::utility_types::ModifyInputsContext; use crate::messages::portfolio::document::graph_operation::utility_types::TransformIn; +use crate::messages::portfolio::document::node_graph::document_node_definitions::resolve_network_node_type; use crate::messages::portfolio::document::utility_types::document_metadata::LayerNodeIdentifier; use crate::messages::portfolio::document::utility_types::network_interface::{InputConnector, NodeNetworkInterface, OutputConnector}; use crate::messages::portfolio::document::utility_types::nodes::CollapsedLayers; @@ -231,15 +232,10 @@ impl MessageHandler> for } GraphOperationMessage::RemoveArtboards => { if network_interface.all_artboards().is_empty() { + responses.add(DocumentMessage::AbortTransaction); return; } - responses.add(DocumentMessage::AddTransaction); - responses.add(NodeGraphMessage::DeleteNodes { - node_ids: network_interface.all_artboards().iter().map(|layer_node| layer_node.to_node()).collect(), - delete_children: false, - }); - let mut artboard_data: HashMap = HashMap::new(); // Go through all artboards and create merge nodes @@ -264,8 +260,8 @@ impl MessageHandler> for }, ); - let mut modify_inputs = ModifyInputsContext::new(network_interface, responses); - modify_inputs.create_layer(node_id); + let new_merge_node = resolve_network_node_type("Merge").expect("Merge node").default_node_template(); + network_interface.insert_node(node_id, new_merge_node, &[]); responses.add(NodeGraphMessage::SetDisplayName { node_id, @@ -310,6 +306,10 @@ impl MessageHandler> for }); } + responses.add(NodeGraphMessage::DeleteNodes { + node_ids: network_interface.all_artboards().iter().map(|layer_node| layer_node.to_node()).collect(), + delete_children: false, + }); responses.add(NodeGraphMessage::RunDocumentGraph); responses.add(NodeGraphMessage::SelectedNodesUpdated); responses.add(NodeGraphMessage::SendGraph);