From 41bf7648c29762cd3c3e9d647c99f6a363008811 Mon Sep 17 00:00:00 2001 From: Robert Yevdokimov <105675984+ryevdokimov@users.noreply.github.com> Date: Thu, 29 Jan 2026 17:02:50 -0500 Subject: [PATCH] Fix `Skeleton3D` Edit Mode bone buttons have priority over transform gizmo --- editor/scene/3d/skeleton_3d_editor_plugin.cpp | 27 +------------------ 1 file changed, 1 insertion(+), 26 deletions(-) diff --git a/editor/scene/3d/skeleton_3d_editor_plugin.cpp b/editor/scene/3d/skeleton_3d_editor_plugin.cpp index c5769af87de..017db8d499f 100644 --- a/editor/scene/3d/skeleton_3d_editor_plugin.cpp +++ b/editor/scene/3d/skeleton_3d_editor_plugin.cpp @@ -1515,35 +1515,10 @@ Skeleton3DEditorPlugin::Skeleton3DEditorPlugin() { EditorPlugin::AfterGUIInput Skeleton3DEditorPlugin::forward_3d_gui_input(Camera3D *p_camera, const Ref &p_event) { Skeleton3DEditor *se = Skeleton3DEditor::get_singleton(); - Node3DEditor *ne = Node3DEditor::get_singleton(); if (se && se->is_edit_mode()) { const Ref mb = p_event; if (mb.is_valid() && mb->get_button_index() == MouseButton::LEFT && mb->is_pressed()) { - Skeleton3D *skeleton = se->get_skeleton(); - if (skeleton) { - int closest_idx = Skeleton3DGizmoPlugin::skeleton_intersect_ray(skeleton, p_camera, mb->get_position()); - if (closest_idx >= 0) { - se->select_bone(closest_idx); - se->update_bone_original(); - - Vector> gizmos = skeleton->get_gizmos(); - for (Ref seg : gizmos) { - if (seg.is_valid()) { - Transform3D bone_xform = seg->get_subgizmo_transform(closest_idx); - ne->call("_set_subgizmo_selection", skeleton, seg, closest_idx, bone_xform); - break; - } - } - return EditorPlugin::AFTER_GUI_INPUT_STOP; - } - } - } - if (mb.is_valid() && mb->get_button_index() == MouseButton::LEFT) { - if (ne->get_tool_mode() != Node3DEditor::TOOL_MODE_SELECT) { - if (!ne->is_gizmo_visible()) { - return EditorPlugin::AFTER_GUI_INPUT_STOP; - } - } + se->update_bone_original(); } return EditorPlugin::AFTER_GUI_INPUT_CUSTOM; }