Fix bug where nodes (like Text) with a non-visible primary input would gain a primary input when shaken (#3899)

* fix: Shaking a Text layer breaks its type signature

* Add a second fix for the same issue

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
This commit is contained in:
Jatin Bharti 2026-03-22 11:55:21 +05:30 committed by Keavon Chambers
parent b7a1b3e665
commit bf486b4cb5
2 changed files with 4 additions and 5 deletions

View File

@ -1521,10 +1521,9 @@ impl<'a> MessageHandler<NodeGraphMessage, NodeGraphMessageContext<'a>> for NodeG
for input_index in 0..network_interface.number_of_inputs(selected_node, selection_network_path) { for input_index in 0..network_interface.number_of_inputs(selected_node, selection_network_path) {
let input_connector = InputConnector::node(*selected_node, input_index); let input_connector = InputConnector::node(*selected_node, input_index);
// Only disconnect inputs to non selected nodes // Only disconnect inputs to non selected nodes
if !network_interface if network_interface
.upstream_output_connector(&input_connector, selection_network_path) .upstream_output_connector(&input_connector, selection_network_path)
.and_then(|connector| connector.node_id()) .is_some_and(|connector| connector.node_id().map_or(true, |node_id| !all_selected_nodes.contains(&node_id)))
.is_some_and(|node_id| all_selected_nodes.contains(&node_id))
{ {
responses.add(NodeGraphMessage::DisconnectInput { input_connector }); responses.add(NodeGraphMessage::DisconnectInput { input_connector });
} }

View File

@ -4068,8 +4068,8 @@ impl NodeNetworkInterface {
log::error!("Could not get current input in disconnect_input"); log::error!("Could not get current input in disconnect_input");
return; return;
}; };
// Do not disconnect an already disconnected input // Only disconnect inputs that are actual wire connections (Node or Import)
if matches!(current_input, NodeInput::Value { .. }) { if !matches!(current_input, NodeInput::Node { .. } | NodeInput::Import { .. }) {
return; return;
} }