Skip to content

Commit 7ae6b5e

Browse files
committed
Fix connected_to_output running in the wrong network for nested-layer toggles
1 parent 38ff641 commit 7ae6b5e

2 files changed

Lines changed: 33 additions & 9 deletions

File tree

editor/src/messages/portfolio/document/node_graph/node_graph_message.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,7 @@ pub enum NodeGraphMessage {
231231
},
232232
SetLockedOrVisibilitySideEffects {
233233
node_ids: Vec<NodeId>,
234+
network_path: Vec<NodeId>,
234235
},
235236
UpdateEdges,
236237
UpdateBoxSelection,

editor/src/messages/portfolio/document/node_graph/node_graph_message_handler.rs

Lines changed: 32 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1888,14 +1888,24 @@ impl<'a> MessageHandler<NodeGraphMessage, NodeGraphMessageContext<'a>> for NodeG
18881888
});
18891889
}
18901890

1891-
responses.add(NodeGraphMessage::SetLockedOrVisibilitySideEffects { node_ids })
1891+
responses.add(NodeGraphMessage::SetLockedOrVisibilitySideEffects {
1892+
node_ids,
1893+
network_path: selection_network_path.to_vec(),
1894+
})
18921895
}
18931896
NodeGraphMessage::ToggleLocked { node_id, network_path } => {
18941897
let locked = !network_interface.is_locked(&node_id, &network_path);
18951898

18961899
responses.add(DocumentMessage::AddTransaction);
1897-
responses.add(NodeGraphMessage::SetLocked { node_id, network_path, locked });
1898-
responses.add(NodeGraphMessage::SetLockedOrVisibilitySideEffects { node_ids: vec![node_id] })
1900+
responses.add(NodeGraphMessage::SetLocked {
1901+
node_id,
1902+
network_path: network_path.clone(),
1903+
locked,
1904+
});
1905+
responses.add(NodeGraphMessage::SetLockedOrVisibilitySideEffects {
1906+
node_ids: vec![node_id],
1907+
network_path,
1908+
});
18991909
}
19001910
NodeGraphMessage::SetLocked { node_id, network_path, locked } => {
19011911
network_interface.set_locked(&node_id, &network_path, locked);
@@ -1914,7 +1924,10 @@ impl<'a> MessageHandler<NodeGraphMessage, NodeGraphMessageContext<'a>> for NodeG
19141924
for node_id in &node_ids {
19151925
responses.add(NodeGraphMessage::SetPinned { node_id: *node_id, pinned });
19161926
}
1917-
responses.add(NodeGraphMessage::SetLockedOrVisibilitySideEffects { node_ids });
1927+
responses.add(NodeGraphMessage::SetLockedOrVisibilitySideEffects {
1928+
node_ids,
1929+
network_path: selection_network_path.to_vec(),
1930+
});
19181931
}
19191932
NodeGraphMessage::ToggleSelectedVisibility => {
19201933
let Some(selected_nodes) = network_interface.selected_nodes_in_nested_network(selection_network_path) else {
@@ -1934,23 +1947,33 @@ impl<'a> MessageHandler<NodeGraphMessage, NodeGraphMessageContext<'a>> for NodeG
19341947
visible,
19351948
});
19361949
}
1937-
responses.add(NodeGraphMessage::SetLockedOrVisibilitySideEffects { node_ids });
1950+
responses.add(NodeGraphMessage::SetLockedOrVisibilitySideEffects {
1951+
node_ids,
1952+
network_path: selection_network_path.to_vec(),
1953+
});
19381954
}
19391955
NodeGraphMessage::ToggleVisibility { node_id, network_path } => {
19401956
let visible = !network_interface.is_visible(&node_id, &network_path);
19411957

19421958
responses.add(DocumentMessage::AddTransaction);
1943-
responses.add(NodeGraphMessage::SetVisibility { node_id, network_path, visible });
1944-
responses.add(NodeGraphMessage::SetLockedOrVisibilitySideEffects { node_ids: vec![node_id] });
1959+
responses.add(NodeGraphMessage::SetVisibility {
1960+
node_id,
1961+
network_path: network_path.clone(),
1962+
visible,
1963+
});
1964+
responses.add(NodeGraphMessage::SetLockedOrVisibilitySideEffects {
1965+
node_ids: vec![node_id],
1966+
network_path,
1967+
});
19451968
}
19461969
NodeGraphMessage::SetPinned { node_id, pinned } => {
19471970
network_interface.set_pinned(&node_id, selection_network_path, pinned);
19481971
}
19491972
NodeGraphMessage::SetVisibility { node_id, network_path, visible } => {
19501973
network_interface.set_visibility(&node_id, &network_path, visible);
19511974
}
1952-
NodeGraphMessage::SetLockedOrVisibilitySideEffects { node_ids } => {
1953-
if node_ids.iter().any(|node_id| network_interface.connected_to_output(node_id, selection_network_path)) {
1975+
NodeGraphMessage::SetLockedOrVisibilitySideEffects { node_ids, network_path } => {
1976+
if node_ids.iter().any(|node_id| network_interface.connected_to_output(node_id, &network_path)) {
19541977
responses.add(NodeGraphMessage::RunDocumentGraph);
19551978
}
19561979
responses.add(NodeGraphMessage::UpdateActionButtons);

0 commit comments

Comments
 (0)