Skip to content

Commit 9e6479a

Browse files
committedApr 23, 2025
final(?) fix
1 parent 0900df7 commit 9e6479a

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed
 

‎editor/src/messages/tool/tool_messages/select_tool.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1609,11 +1609,10 @@ fn drag_shallowest_manipulation(responses: &mut VecDeque<Message>, selected: Vec
16091609
.expect("ROOT_PARENT should have at least one layer when clicking")
16101610
});
16111611

1612-
let selected_layers = document.network_interface.selected_nodes().selected_layers(document.metadata()).collect::<Vec<_>>();
16131612
let metadata = document.metadata();
16141613

16151614
let final_selection: Option<LayerNodeIdentifier> = (!selected_layers.is_empty() && selected_layers != vec![LayerNodeIdentifier::ROOT_PARENT]).then_some(()).and_then(|_| {
1616-
let mut relevant_layers = selected_layers;
1615+
let mut relevant_layers = document.network_interface.selected_nodes().selected_layers(document.metadata()).collect::<Vec<_>>();
16171616
if !relevant_layers.contains(&clicked_layer) {
16181617
relevant_layers.push(clicked_layer);
16191618
}
@@ -1636,6 +1635,11 @@ fn drag_shallowest_manipulation(responses: &mut VecDeque<Message>, selected: Vec
16361635
})
16371636
});
16381637

1638+
let selected_layers = document.network_interface.selected_nodes().selected_layers(document.metadata()).collect::<Vec<_>>();
1639+
if final_selection.is_some_and(|layer| selected_layers.iter().any(|selected| selected.children(metadata).any(|child| child == layer))) {
1640+
return;
1641+
};
1642+
16391643
let new_selected = final_selection.unwrap_or_else(|| clicked_layer.ancestors(document.metadata()).filter(not_artboard(document)).last().unwrap_or(clicked_layer));
16401644
tool_data.layers_dragging.extend(vec![new_selected]);
16411645
if remove {

0 commit comments

Comments
 (0)