Skip to content

Commit 69c6f44

Browse files
authored
Fix internal consistency of layer ordering when grouping (#1645)
* Internal consistency: Grouping layers preserve the order that they were sorted once those layers end up in the new group * optimizations
1 parent 9f84661 commit 69c6f44

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

editor/src/messages/portfolio/portfolio_message_handler.rs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -166,14 +166,15 @@ impl MessageHandler<PortfolioMessage, (&InputPreprocessorMessageHandler, &Prefer
166166
};
167167

168168
let copy_val = |buffer: &mut Vec<CopyBufferEntry>| {
169-
for layer_path in active_document
169+
let binding = active_document
170170
.metadata()
171-
.shallowest_unique_layers(active_document.selected_nodes.selected_layers(active_document.metadata()))
172-
{
173-
let Some(layer) = layer_path.last().copied() else {
174-
continue;
175-
};
171+
.shallowest_unique_layers(active_document.selected_nodes.selected_layers(active_document.metadata()));
172+
173+
let get_last_elements: Vec<_> = binding.iter().map(|x| x.last().expect("empty path")).collect();
174+
175+
let ordered_last_elements: Vec<_> = active_document.metadata.all_layers().filter(|layer| get_last_elements.contains(&layer)).collect();
176176

177+
for layer in ordered_last_elements {
177178
let node = layer.to_node();
178179
let previous_alias = active_document.network().nodes.get(&node).map(|node| node.alias.clone()).unwrap_or_default();
179180

0 commit comments

Comments
 (0)