From 0c7b55949d6854ce7f59ef1534c532f8711c3d94 Mon Sep 17 00:00:00 2001 From: 0HyperCube <78500760+0HyperCube@users.noreply.github.com> Date: Fri, 26 May 2023 18:02:05 +0100 Subject: [PATCH] Fix some node connection UI issues (#1248) --- .../document/node_graph/node_graph_message_handler.rs | 8 +++++++- frontend/src/components/panels/NodeGraph.svelte | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) 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 157a0a25..4ba1500d 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 @@ -540,7 +540,13 @@ impl MessageHandler responses.add(DocumentMessage::StartTransaction); - let input = node_type.inputs[input_index].default.clone(); + let Some((input_index, existing_input)) = node.inputs.iter().enumerate().filter(|(_, input)| input.is_exposed()).nth(input_index) else { + return; + }; + let mut input = node_type.inputs[input_index].default.clone(); + if let NodeInput::Value { exposed, .. } = &mut input { + *exposed = existing_input.is_exposed(); + } responses.add(NodeGraphMessage::SetNodeInput { node_id, input_index, input }); let should_rerender = network.connected_to_output(node_id, true); diff --git a/frontend/src/components/panels/NodeGraph.svelte b/frontend/src/components/panels/NodeGraph.svelte index b5f0e370..d330bfd6 100644 --- a/frontend/src/components/panels/NodeGraph.svelte +++ b/frontend/src/components/panels/NodeGraph.svelte @@ -287,7 +287,7 @@ const links = $nodeGraph.links; const linkIndex = links.findIndex((value) => value.linkEnd === nodeIdInt && value.linkEndInputIndex === inputIndexInt); const nodeOutputConnectors = nodesContainer?.querySelectorAll(`[data-node="${String(links[linkIndex].linkStart)}"] [data-port="output"]`) || undefined; - linkInProgressFromConnector = nodeOutputConnectors?.[Number(links[linkIndex].linkEndInputIndex)] as HTMLDivElement | undefined; + linkInProgressFromConnector = nodeOutputConnectors?.[Number(links[linkIndex].linkStartOutputIndex)] as HTMLDivElement | undefined; const nodeInputConnectors = nodesContainer?.querySelectorAll(`[data-node="${String(links[linkIndex].linkEnd)}"] [data-port="input"]`) || undefined; linkInProgressToConnector = nodeInputConnectors?.[Number(links[linkIndex].linkEndInputIndex)] as HTMLDivElement | undefined; disconnecting = { nodeId: nodeIdInt, inputIndex, linkIndex };