diff --git a/editor/src/messages/portfolio/document/node_graph/node_graph_message_handler.rs b/editor/src/messages/portfolio/document/node_graph/node_graph_message_handler.rs index c3c141f6..b29ddad3 100644 --- a/editor/src/messages/portfolio/document/node_graph/node_graph_message_handler.rs +++ b/editor/src/messages/portfolio/document/node_graph/node_graph_message_handler.rs @@ -407,7 +407,7 @@ impl NodeGraphMessageHandler { fn copy_nodes<'a>(network: &'a NodeNetwork, new_ids: &'a HashMap) -> impl Iterator + 'a { new_ids .iter() - .filter(|&(&id, _)| !network.outputs_contain(id) && !network.inputs.contains(&id)) + .filter(|&(&id, _)| !network.outputs_contain(id)) .filter_map(|(&id, &new)| network.nodes.get(&id).map(|node| (new, node.clone()))) .map(move |(new, node)| (new, node.map_ids(Self::default_node_input, new_ids))) } @@ -580,6 +580,7 @@ impl MessageHandler for N Self::send_graph(network, executor, &self.layer_path, responses); self.update_selected(document, responses); + responses.add(NodeGraphMessage::SendGraph { should_rerender: false }); } } NodeGraphMessage::ExitNestedNetwork { depth_of_nesting } => { @@ -669,6 +670,10 @@ impl MessageHandler for N } }; + if data.is_empty() { + return; + } + // Shift nodes until it is not in the same position as another node let mut shift = IVec2::ZERO; while data