From 8dff338c08efbb50a64540cf971cbc1b8ce124bf Mon Sep 17 00:00:00 2001 From: Dmitry Stepanov Date: Fri, 9 Oct 2026 20:03:35 +0300 Subject: [PATCH] fixed `is_current_selection_has_external_refs` - no false positives anymore --- editor/src/scene/mod.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/editor/src/scene/mod.rs b/editor/src/scene/mod.rs index 821f75c25..a814f6d1e 100644 --- a/editor/src/scene/mod.rs +++ b/editor/src/scene/mod.rs @@ -441,10 +441,19 @@ impl GameScene { graph: &Graph, ) -> bool { if let Some(selection) = editor_selection.as_graph() { + // Convert selection to the full list of descendant nodes first. + let roots = selection.root_nodes(graph); + let mut all_nodes = FxHashSet::default(); + for root in roots { + for (descendant_handle, _) in graph.traverse_iter(root) { + all_nodes.insert(descendant_handle); + } + } + for node in selection.nodes() { for (descendant_handle, _) in graph.traverse_iter(*node) { for reference in graph.find_references_to(descendant_handle) { - if !selection.contains(reference) { + if !all_nodes.contains(&reference) { return true; } }