diff options
author | Rémi Verschelde <remi@verschelde.fr> | 2024-09-09 23:40:14 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-09 23:40:14 +0200 |
commit | 21249950da50e094b141f73646fd477d7832c8db (patch) | |
tree | da4660a5ed41859ccca8681b227b98eaaecf2e5b | |
parent | 27552a2f26adcdba579cd804197de3942e8cb0ec (diff) | |
parent | 9d735b09049f566920cdc172644ab715dc95d98d (diff) | |
download | redot-engine-21249950da50e094b141f73646fd477d7832c8db.tar.gz |
Merge pull request #96765 from adamscott/selecting-locked
Fix issue where editable children of 3D nodes would be selected
-rw-r--r-- | editor/plugins/node_3d_editor_plugin.cpp | 10 | ||||
-rw-r--r-- | editor/plugins/node_3d_editor_plugin.h | 2 |
2 files changed, 4 insertions, 8 deletions
diff --git a/editor/plugins/node_3d_editor_plugin.cpp b/editor/plugins/node_3d_editor_plugin.cpp index 44673e7224..35a8741b19 100644 --- a/editor/plugins/node_3d_editor_plugin.cpp +++ b/editor/plugins/node_3d_editor_plugin.cpp @@ -810,7 +810,7 @@ ObjectID Node3DEditorViewport::_select_ray(const Point2 &p_pos) const { Vector<Node3D *> nodes_with_gizmos = Node3DEditor::get_singleton()->gizmo_bvh_ray_query(pos, pos + ray * camera->get_far()); for (Node3D *spat : nodes_with_gizmos) { - if (!spat) { + if (!spat || _is_node_locked(spat)) { continue; } @@ -1557,7 +1557,7 @@ void Node3DEditorViewport::_surface_focus_exit() { view_menu->set_disable_shortcuts(true); } -bool Node3DEditorViewport ::_is_node_locked(const Node *p_node) { +bool Node3DEditorViewport::_is_node_locked(const Node *p_node) const { return p_node->get_meta("_edit_lock_", false); } @@ -1935,11 +1935,7 @@ void Node3DEditorViewport::_sinput(const Ref<InputEvent> &p_event) { if (after != EditorPlugin::AFTER_GUI_INPUT_CUSTOM) { // Single item selection. - Vector<_RayResult> selection; - _find_items_at_pos(b->get_position(), selection, false); - if (!selection.is_empty()) { - clicked = selection[0].item->get_instance_id(); - } + clicked = _select_ray(b->get_position()); selection_in_progress = true; diff --git a/editor/plugins/node_3d_editor_plugin.h b/editor/plugins/node_3d_editor_plugin.h index 2cfe784ca6..c7e6420875 100644 --- a/editor/plugins/node_3d_editor_plugin.h +++ b/editor/plugins/node_3d_editor_plugin.h @@ -460,7 +460,7 @@ private: bool previewing_camera = false; bool previewing_cinema = false; - bool _is_node_locked(const Node *p_node); + bool _is_node_locked(const Node *p_node) const; void _preview_exited_scene(); void _toggle_camera_preview(bool); void _toggle_cinema_preview(bool); |