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 <keavon@keavon.com>
This commit is contained in:
parent
878f5d3bf7
commit
a1d85779ba
|
|
@ -566,10 +566,12 @@ impl<'a> MessageHandler<NodeGraphMessage, NodeGraphHandlerData<'a>> for NodeGrap
|
||||||
responses.add(DocumentMessage::AddTransaction);
|
responses.add(DocumentMessage::AddTransaction);
|
||||||
|
|
||||||
let new_ids: HashMap<_, _> = data.iter().map(|(id, _)| (*id, NodeId::new())).collect();
|
let new_ids: HashMap<_, _> = data.iter().map(|(id, _)| (*id, NodeId::new())).collect();
|
||||||
|
let nodes: Vec<_> = new_ids.iter().map(|(_, id)| *id).collect();
|
||||||
responses.add(NodeGraphMessage::AddNodes {
|
responses.add(NodeGraphMessage::AddNodes {
|
||||||
nodes: data,
|
nodes: data,
|
||||||
new_ids: new_ids.clone(),
|
new_ids: new_ids.clone(),
|
||||||
});
|
});
|
||||||
|
responses.add(NodeGraphMessage::SelectedNodesSet { nodes })
|
||||||
}
|
}
|
||||||
NodeGraphMessage::PointerDown {
|
NodeGraphMessage::PointerDown {
|
||||||
shift_click,
|
shift_click,
|
||||||
|
|
@ -995,11 +997,13 @@ impl<'a> MessageHandler<NodeGraphMessage, NodeGraphHandlerData<'a>> for NodeGrap
|
||||||
responses.add(NodeGraphMessage::TogglePreview { node_id: preview_node });
|
responses.add(NodeGraphMessage::TogglePreview { node_id: preview_node });
|
||||||
self.preview_on_mouse_up = None;
|
self.preview_on_mouse_up = None;
|
||||||
}
|
}
|
||||||
if let Some(node_to_deselect) = self.deselect_on_pointer_up {
|
if let Some(node_to_deselect) = self.deselect_on_pointer_up.take() {
|
||||||
let mut new_selected_nodes = selected_nodes.selected_nodes_ref().clone();
|
if !self.drag_start.as_ref().is_some_and(|t| t.1) {
|
||||||
new_selected_nodes.remove(node_to_deselect);
|
let mut new_selected_nodes = selected_nodes.selected_nodes_ref().clone();
|
||||||
responses.add(NodeGraphMessage::SelectedNodesSet { nodes: new_selected_nodes });
|
new_selected_nodes.remove(node_to_deselect);
|
||||||
self.deselect_on_pointer_up = None;
|
responses.add(NodeGraphMessage::SelectedNodesSet { nodes: new_selected_nodes });
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
let point = network_metadata
|
let point = network_metadata
|
||||||
.persistent_metadata
|
.persistent_metadata
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue