Fix AnimationTree AnimationPlayerEditor broken#117951
Merged
Repiteo merged 1 commit intogodotengine:masterfrom Mar 31, 2026
Merged
Fix AnimationTree AnimationPlayerEditor broken#117951Repiteo merged 1 commit intogodotengine:masterfrom
Repiteo merged 1 commit intogodotengine:masterfrom
Conversation
TokageItLab
approved these changes
Mar 29, 2026
Contributor
|
Thanks! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I assumed that this code that used to prevent the AnimationPlayerEditor from showing over the AnimationTreeEditor was fine, but it seems that something has changed since it was last used and now there are issues.
godot/editor/animation/animation_player_editor_plugin.cpp
Lines 2490 to 2491 in 220b0b2
The logic in
AnimationPlayerEditorPlugin::make_visibleneeds to run even if opening the AnimationTreeEditor over it, so I removed the check.This also makes the AnimationPlayerEditor show if it is not in the same dock as the AnimationTreeEditor, which is now possible with some of the bottom dock reworks.
But then there needs to be a different way to make sure that the AnimationTreeEditor opens over it. (#115947)
So I changed the order in
EditorData::get_handling_sub_editors.The order of sub editor plugins (non main screen ones) was changed in #37022 as an addition to the main editor plugins, in order to give user plugins priority. But all sub editor plugins are edited, so to give users priority they should actually be edited after the default ones so they can show over them.
This change also makes plugins edit in the order they are added, the AnimationTreeEditor is added after the AnimationPlayerEditor, so it now shows over it.
Generally, I think more general plugins are added before more specific ones, so it should make sense to edit the more specific ones after.
I don't think any other sub editors edit the same object and care about order where this would be an issue.
Here are all plugins in the order that they are added to EditorData's
editor_pluginsin a default build. I'm still looking through it to see if there would be any issues from changing it to be in reverse order to forward order for non-main screens, but I haven't found any issues.All EditorPlugins in order
CanvasItemNode3DScript||JSON||TextFileAnimationPlayer||AnimationTree||AnimationMixerAnimationTrackKeyEditAnimationMarkerKeyEditAudioBusLayoutAnimationTreeCamera3DControlCPUParticles3D(ParticlesEditorPlugin)GPUParticles3D(ParticlesEditorPlugin)GPUParticlesCollisionSDF3DLightmapGIMarginContainerMultiMeshInstance3DMeshInstance3D||MultiNodeEditwith 2+MeshInstance3DMeshLibraryMultiMeshInstance3DOccluderInstance3DPath3DNode3D&& bool(p_object->call("_is_editable_3d_polygon"))ResourcePreloaderShader||ShaderIncludeRDShaderFileSkeleton3DAnimatedSprite2Dwith get_sprite_frames() ||AnimatedSprite3Dwith get_sprite_frames() ||SpriteFramesif currently editing those frames or not editing any.ThemeVirtualJoystickVoxelGISkeletonIK3DCamera2DCollisionPolygon2D(AbstractPolygon2DEditorPlugin)CollisionShape2DCPUParticles2D(ParticlesEditorPlugin)GPUParticles2D(ParticlesEditorPlugin)LightOccluder2D(AbstractPolygon2DEditorPlugin)Line2D(AbstractPolygon2DEditorPlugin)Path2DPolygon2D(AbstractPolygon2DEditorPlugin)RayCast2D||ShapeCast2DSkeleton2DSprite2DTileSetTileMapLayer||TileMap||MultiNodeEditwith allTileMapLayersNode2DParallaxBackgroundCSGShape3D&& csg_shape->is_root_shape()GridMapMultiplayerSynchronizerNavigationLink2DNavigationRegion2D(AbstractPolygon2DEditorPlugin)NavigationObstacle2D(AbstractPolygon2DEditorPlugin)NavigationLink3DNavigationRegion3D||MultiNodeEditwith anyNavigationRegion3DNavigationObstacle3DOpenXRActionMap&& action_map_editor