Skip to content

Commit d5593cb

Browse files
committed
Stop pushing duplicate layer entries when re-clicking an already-selected layer
1 parent ab7f59c commit d5593cb

1 file changed

Lines changed: 8 additions & 2 deletions

File tree

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

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1823,7 +1823,10 @@ fn drag_shallowest_manipulation(responses: &mut VecDeque<Message>, selected: Vec
18231823
}
18241824

18251825
let new_selected = final_selection.unwrap_or_else(|| clicked_layer.ancestors(document.metadata()).filter(not_artboard(document)).last().unwrap_or(clicked_layer));
1826-
tool_data.layers_dragging.extend(vec![new_selected]);
1826+
// Duplicates cause `SelectedNodesSet` to carry the layer twice, breaking the Data panel's single-selection check in `node_to_inspect`
1827+
if !tool_data.layers_dragging.contains(&new_selected) {
1828+
tool_data.layers_dragging.push(new_selected);
1829+
}
18271830
tool_data.layers_dragging.retain(|&selected_layer| !selected_layer.is_child_of(metadata, &new_selected));
18281831
if remove {
18291832
tool_data.layers_dragging.retain(|&selected_layer| clicked_layer != selected_layer);
@@ -1885,7 +1888,10 @@ fn drag_deepest_manipulation(responses: &mut VecDeque<Message>, selected: Vec<La
18851888
);
18861889

18871890
if !remove {
1888-
tool_data.layers_dragging.extend(vec![layer]);
1891+
// Duplicates cause `SelectedNodesSet` to carry the layer twice, breaking the Data panel's single-selection check in `node_to_inspect`
1892+
if !tool_data.layers_dragging.contains(&layer) {
1893+
tool_data.layers_dragging.push(layer);
1894+
}
18891895
} else {
18901896
tool_data.layers_dragging.retain(|&selected_layer| layer != selected_layer);
18911897
}

0 commit comments

Comments
 (0)