Merge pull request #46452 from hilfazer/click_mesh_instance_crash_40

Prevent crash when clicking Mesh in MeshInstance when is scene root
This commit is contained in:
Rémi Verschelde 2021-02-26 21:00:12 +01:00 committed by GitHub
commit 7b685a1558
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 3 deletions

View file

@ -535,7 +535,10 @@ ObjectID Node3DEditorViewport::_select_ray(const Point2 &p_pos, bool p_append, b
}
if (dist < closest_dist) {
item = edited_scene->get_deepest_editable_node(Object::cast_to<Node>(spat));
item = Object::cast_to<Node>(spat);
if (item != edited_scene) {
item = edited_scene->get_deepest_editable_node(item);
}
closest = item->get_instance_id();
closest_dist = dist;
@ -694,7 +697,10 @@ void Node3DEditorViewport::_select_region() {
continue;
}
Node *item = edited_scene->get_deepest_editable_node(Object::cast_to<Node>(sp));
Node *item = Object::cast_to<Node>(sp);
if (item != edited_scene) {
item = edited_scene->get_deepest_editable_node(item);
}
// Replace the node by the group if grouped
if (item->is_class("Node3D")) {

View file

@ -1976,7 +1976,7 @@ bool Node::is_editable_instance(const Node *p_node) const {
Node *Node::get_deepest_editable_node(Node *p_start_node) const {
ERR_FAIL_NULL_V(p_start_node, nullptr);
ERR_FAIL_COND_V(!is_a_parent_of(p_start_node), nullptr);
ERR_FAIL_COND_V(!is_a_parent_of(p_start_node), p_start_node);
Node const *iterated_item = p_start_node;
Node *node = p_start_node;