X Tutup
Skip to content

Fix Skeleton3D Edit Mode bone buttons have priority over transform gizmo#115608

Merged
Repiteo merged 1 commit intogodotengine:masterfrom
Open-Industry-Project:fix-skeleton
Feb 3, 2026
Merged

Fix Skeleton3D Edit Mode bone buttons have priority over transform gizmo#115608
Repiteo merged 1 commit intogodotengine:masterfrom
Open-Industry-Project:fix-skeleton

Conversation

@ryevdokimov
Copy link
Contributor

@ryevdokimov ryevdokimov commented Jan 29, 2026

Fixes: #115581

Verified #114749 was not reintroduced.

#114752 added bone selection handling to forward_3d_gui_input, which runs before transform gizmo input processing. This caused bone buttons to intercept clicks meant for the gizmo. Bone selection is already handled correctly by subgizmos_intersect_ray, which runs after the transform gizmo check in _sinput, so this redundant.

2026-01-29.18-16-54.mp4

@akien-mga akien-mga requested a review from TokageItLab January 30, 2026 07:40
@akien-mga akien-mga added the cherrypick:4.6 Considered for cherry-picking into a future 4.6.x release label Jan 30, 2026
Copy link
Member

@TokageItLab TokageItLab left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems to be not worked correctly, the free rotation detection seems too strong:

  • Joints without a gizmo surface cannot be selected
  • The rotation gizmo does not function in Transform mode

This PR:

bug.mp4

4.5 behavior (should be):

4_5.mp4

So I recommend white semi-transparent sphere area visualizer on center of the gizmo must be removed and the priority must be set to the lowest.

@ryevdokimov
Copy link
Contributor Author

ryevdokimov commented Feb 2, 2026

Joints without a gizmo surface cannot be selected

I'm mixed on this, I understand that's how it worked in v4.5, but technically it is part of the transform gizmo and an argument can be made that it should also have priority over the bone buttons, especially since there is a dedicated select tool now. What if someone wants to use the trackball feature to manipulate the joints?

The rotation gizmo does not function in Transform mode

Huh weird, I can make it work sometimes. I'll take a further look.

@TokageItLab
Copy link
Member

TokageItLab commented Feb 2, 2026

What if someone wants to use the trackball feature to manipulate the joints?

This operation must be performed when you press a part inside the sphere that does not exist as a joint button. It is selectable in 4.6 stable, but this PR is causing further regressions.

@ryevdokimov
Copy link
Contributor Author

This operation must be performed when you press a part inside the sphere that does not exist as a joint button.

Isn't that the issue that this PR is trying to fix? IMO the transform gizmo should consistently have priority over the bone buttons.

Wouldn't it make sense more to have the trackball an editor setting if this is considered an issue for people who preferred the behavior of being able to select through the gizmo while it's transform/rotation mode?

@TokageItLab
Copy link
Member

TokageItLab commented Feb 2, 2026

Since you might be confused, let me clarify the issue. The issue points out that the joint button takes precedence over the green (XZ) plane transform in the video.

4.6:

46.mp4

4.5:

45.mp4

This PR currently treats everything inside the sphere as part of the transform gizmo's detection, but that's the wrong approach. The only necessary fix here is to ensure that items visually positioned higher take priority when clicked.

@ryevdokimov
Copy link
Contributor Author

Since you might be confused,

This is certainty possible. 😂

The issue points out that the joint button takes precedence over the green (XZ) plane transform in the video.

I believe I understand this.

This PR currently treats everything inside the sphere as part of the transform gizmo's detection, but that's the wrong approach.

Yes, and I am arguing that the approach makes sense. It is part of the transform gizmo and therefore should have priority over the bone buttons as well. This will lead to consistent behavior and makes it impossible to accidentally select a different bone if someone was rapidly trying to rotate the track ball.

My alternative suggestion is we make it an editor setting to disable the trackball for those who prefer not to use the dedicated select tool and wish to click through the transform/rotation gizmo.

@TokageItLab
Copy link
Member

TokageItLab commented Feb 2, 2026

Yes, and I am arguing that the approach makes sense. It is part of the transform gizmo and therefore should have priority over the bone buttons as well. This will lead to consistent behavior and makes it impossible to accidentally select a different bone if someone was rapidly trying to rotate the track ball.

That must be a separate proposal.

The author who reported the issue apparently hasn't touched anything other than 4.6, so I don't know if they want that, but I'm simply arguing that we need to preserve the 4.5 behavior, so we should only make "fixes" here, not enhancement.

As I said initially, whether to add an option to enforce that transform gizmo area requires discussion and demand assessment through a proposal. Personally, I wouldn't strongly oppose it, but it should never be the default (it means that #114749 will recur within Sphere), and I wouldn't promote that adding it (I'll leave that to others' opinion who want to it).

Copy link
Member

@TokageItLab TokageItLab left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see. So the white area was added in #109976. After this PR change, I confirmed that reverting #109976 results in the same behavior as 4.5.

Therefore, merging this PR for 4.7 and cherry-picking it into 4.6 should be fine. However, I emphasize that a follow-up to make #109976 optional is absolutely necessary. This is because it partially reintroduces #114749.

@TokageItLab TokageItLab modified the milestones: 4.x, 4.7 Feb 2, 2026
@ryevdokimov
Copy link
Contributor Author

However, I emphasize that a follow-up to make #109976 optional is absolutely necessary.

I will create a PR for it today.

@Repiteo Repiteo merged commit 4c5f4e6 into godotengine:master Feb 3, 2026
20 checks passed
@Repiteo
Copy link
Contributor

Repiteo commented Feb 3, 2026

Thanks!

@ryevdokimov ryevdokimov deleted the fix-skeleton branch February 4, 2026 16:24
@Repiteo
Copy link
Contributor

Repiteo commented Feb 5, 2026

Cherry-picked for 4.6.1.

@Repiteo Repiteo removed the cherrypick:4.6 Considered for cherry-picking into a future 4.6.x release label Feb 5, 2026
rivie13 pushed a commit to rivie13/Phoenix-Agentic-Engine that referenced this pull request Feb 16, 2026
Fix `Skeleton3D` Edit Mode bone buttons have priority over transform gizmo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Skeleton3D Edit Mode bone buttons have priority over manipulator gizmo

5 participants

X Tutup