summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--editor/plugins/node_3d_editor_plugin.cpp10
-rw-r--r--editor/plugins/node_3d_editor_plugin.h2
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);