From 2fe0cf7a4c33bea7f79348644d8a66627efa5480 Mon Sep 17 00:00:00 2001 From: Kulcode <152772205+jsjgdh@users.noreply.github.com> Date: Wed, 18 Feb 2026 01:50:57 +0530 Subject: [PATCH] Fix holding Ctrl in the graph not allowing for selecting nodes unless some are in a layer (#3778) * Fix * Fix-2 * Formatting --------- Co-authored-by: Keavon Chambers --- editor/src/messages/input_mapper/input_mappings.rs | 2 +- .../node_graph/node_graph_message_handler.rs | 12 ++---------- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/editor/src/messages/input_mapper/input_mappings.rs b/editor/src/messages/input_mapper/input_mappings.rs index e11cd28c..644b8d5a 100644 --- a/editor/src/messages/input_mapper/input_mappings.rs +++ b/editor/src/messages/input_mapper/input_mappings.rs @@ -74,7 +74,7 @@ pub fn input_mappings(zoom_with_scroll: bool) -> Mapping { entry!(KeyDown(MouseLeft); modifiers=[Alt], action_dispatch=NodeGraphMessage::PointerDown { shift_click: false, control_click: false, alt_click: true, right_click: false }), entry!(KeyDown(MouseRight); action_dispatch=NodeGraphMessage::PointerDown { shift_click: false, control_click: false, alt_click: false, right_click: true }), entry!(DoubleClick(MouseButton::Left); action_dispatch=NodeGraphMessage::EnterNestedNetwork), - entry!(PointerMove; refresh_keys=[Shift], action_dispatch=NodeGraphMessage::PointerMove { shift: Shift }), + entry!(PointerMove; refresh_keys=[Control, Alt, Shift], action_dispatch=NodeGraphMessage::PointerMove { shift: Shift }), entry!(PointerShake; action_dispatch=NodeGraphMessage::ShakeNode), entry!(KeyUp(MouseLeft); action_dispatch=NodeGraphMessage::PointerUp), entry!(KeyDown(Delete); modifiers=[Accel], action_dispatch=NodeGraphMessage::DeleteSelectedNodes { delete_children: false }), 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 8e307a7d..433a282b 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 @@ -1977,16 +1977,8 @@ impl<'a> MessageHandler> for NodeG } if control { - let mut non_layer_nodes = HashSet::new(); - - let layer_nodes = nodes.iter().filter(|node_id| network_interface.is_layer(node_id, selection_network_path)); - for &layer_id in layer_nodes { - for child_id in network_interface.upstream_flow_back_from_nodes(vec![layer_id], selection_network_path, FlowType::LayerChildrenUpstreamFlow) { - if nodes.contains(&child_id) && child_id != layer_id { - non_layer_nodes.insert(child_id); - } - } - } + let layer_nodes: HashSet<_> = nodes.iter().filter(|node_id| network_interface.is_layer(node_id, selection_network_path)).cloned().collect(); + let non_layer_nodes: HashSet<_> = nodes.difference(&layer_nodes).cloned().collect(); // Remove non-layer nodes from selection if alt {