Skip to content

Commit 5c1f5f3

Browse files
committed
final(?) fix
1 parent 0900df7 commit 5c1f5f3

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

+6-2
Original file line numberDiff line numberDiff line change
@@ -1609,11 +1609,11 @@ 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

1614+
let selected_layers = document.network_interface.selected_nodes().selected_layers(document.metadata()).collect::<Vec<_>>();
16151615
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;
1616+
let mut relevant_layers = document.network_interface.selected_nodes().selected_layers(document.metadata()).collect::<Vec<_>>();
16171617
if !relevant_layers.contains(&clicked_layer) {
16181618
relevant_layers.push(clicked_layer);
16191619
}
@@ -1636,6 +1636,10 @@ fn drag_shallowest_manipulation(responses: &mut VecDeque<Message>, selected: Vec
16361636
})
16371637
});
16381638

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)