Commit 3fac36a 1 parent d9d23c2 commit 3fac36a Copy full SHA for 3fac36a
File tree 1 file changed +11
-9
lines changed
1 file changed +11
-9
lines changed Original file line number Diff line number Diff line change @@ -1064,21 +1064,23 @@ void Node3DEditorViewport::_select_region() {
1064
1064
if (found_nodes.has (sp)) {
1065
1065
continue ;
1066
1066
}
1067
-
1068
1067
found_nodes.insert (sp);
1069
1068
1070
1069
Node *node = Object::cast_to<Node>(sp);
1070
+
1071
+ // Selection requires that the node is the edited scene or its descendant, and has an owner.
1071
1072
if (node != edited_scene) {
1073
+ if (!node->get_owner () || !edited_scene->is_ancestor_of (node)) {
1074
+ continue ;
1075
+ }
1072
1076
node = edited_scene->get_deepest_editable_node (node);
1073
- }
1074
-
1075
- // Prevent selection of nodes not owned by the edited scene.
1076
- while (node && node != edited_scene->get_parent ()) {
1077
- Node *node_owner = node->get_owner ();
1078
- if (node_owner == edited_scene || node == edited_scene || (node_owner != nullptr && edited_scene->is_editable_instance (node_owner))) {
1079
- break ;
1077
+ while (node != edited_scene) {
1078
+ Node *node_owner = node->get_owner ();
1079
+ if (node_owner == edited_scene || (node_owner != nullptr && edited_scene->is_editable_instance (node_owner))) {
1080
+ break ;
1081
+ }
1082
+ node = node->get_parent ();
1080
1083
}
1081
- node = node->get_parent ();
1082
1084
}
1083
1085
1084
1086
// Replace the node by the group if grouped
You can’t perform that action at this time.
0 commit comments