Skip to content

Commit a1d8577

Browse files
mTvare6Keavon
andcommitted
Fix inability to deselect nodes, and nodes not being selected when pasted (#2691)
* Deselect on shift/alt click and paste selects multiple mode * Grid values persistance * reset --------- Co-authored-by: Keavon Chambers <[email protected]>
1 parent 878f5d3 commit a1d8577

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

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

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -566,10 +566,12 @@ impl<'a> MessageHandler<NodeGraphMessage, NodeGraphHandlerData<'a>> for NodeGrap
566566
responses.add(DocumentMessage::AddTransaction);
567567

568568
let new_ids: HashMap<_, _> = data.iter().map(|(id, _)| (*id, NodeId::new())).collect();
569+
let nodes: Vec<_> = new_ids.iter().map(|(_, id)| *id).collect();
569570
responses.add(NodeGraphMessage::AddNodes {
570571
nodes: data,
571572
new_ids: new_ids.clone(),
572573
});
574+
responses.add(NodeGraphMessage::SelectedNodesSet { nodes })
573575
}
574576
NodeGraphMessage::PointerDown {
575577
shift_click,
@@ -995,11 +997,13 @@ impl<'a> MessageHandler<NodeGraphMessage, NodeGraphHandlerData<'a>> for NodeGrap
995997
responses.add(NodeGraphMessage::TogglePreview { node_id: preview_node });
996998
self.preview_on_mouse_up = None;
997999
}
998-
if let Some(node_to_deselect) = self.deselect_on_pointer_up {
999-
let mut new_selected_nodes = selected_nodes.selected_nodes_ref().clone();
1000-
new_selected_nodes.remove(node_to_deselect);
1001-
responses.add(NodeGraphMessage::SelectedNodesSet { nodes: new_selected_nodes });
1002-
self.deselect_on_pointer_up = None;
1000+
if let Some(node_to_deselect) = self.deselect_on_pointer_up.take() {
1001+
if !self.drag_start.as_ref().is_some_and(|t| t.1) {
1002+
let mut new_selected_nodes = selected_nodes.selected_nodes_ref().clone();
1003+
new_selected_nodes.remove(node_to_deselect);
1004+
responses.add(NodeGraphMessage::SelectedNodesSet { nodes: new_selected_nodes });
1005+
return;
1006+
}
10031007
}
10041008
let point = network_metadata
10051009
.persistent_metadata

0 commit comments

Comments
 (0)