Merge pull request #104371 from mihe/animation-player-reset

Fix issue of `AnimationPlayer` hiding bezier editor when re-selecting it
This commit is contained in:
Rémi Verschelde 2025-12-02 14:15:28 +01:00
commit 85d5df058b
No known key found for this signature in database
GPG key ID: C3336907360768E1

View file

@ -4049,7 +4049,7 @@ void AnimationTrackEditor::set_animation(const Ref<Animation> &p_anim, bool p_re
marker_edit->set_animation(p_anim, read_only);
marker_edit->set_play_position(timeline->get_play_position());
_cancel_bezier_edit();
_check_bezier_exist();
_update_tracks();
if (animation.is_valid()) {
@ -4078,7 +4078,14 @@ void AnimationTrackEditor::set_animation(const Ref<Animation> &p_anim, bool p_re
}
}
_check_bezier_exist();
if (bezier_edit->is_visible()) {
for (int i = 0; i < animation->get_track_count(); ++i) {
if (animation->track_get_type(i) == Animation::TrackType::TYPE_BEZIER) {
_bezier_edit(i);
break;
}
}
}
} else {
hscroll->hide();
edit->set_disabled(true);
@ -4099,10 +4106,12 @@ void AnimationTrackEditor::set_animation(const Ref<Animation> &p_anim, bool p_re
void AnimationTrackEditor::_check_bezier_exist() {
bool is_exist = false;
for (int i = 0; i < animation->get_track_count(); i++) {
if (animation->track_get_type(i) == Animation::TrackType::TYPE_BEZIER) {
is_exist = true;
break;
if (animation.is_valid()) {
for (int i = 0; i < animation->get_track_count(); i++) {
if (animation->track_get_type(i) == Animation::TrackType::TYPE_BEZIER) {
is_exist = true;
break;
}
}
}
if (is_exist) {