Fix broken sync between animation TrackEditor and PlayerEditor
This commit is contained in:
parent
b97110cd30
commit
fae712d968
3 changed files with 9 additions and 17 deletions
|
@ -3690,7 +3690,7 @@ void AnimationTrackEditor::_name_limit_changed() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void AnimationTrackEditor::_timeline_changed(float p_new_pos, bool p_timeline_only) {
|
void AnimationTrackEditor::_timeline_changed(float p_new_pos, bool p_timeline_only) {
|
||||||
emit_signal(SNAME("timeline_changed"), p_new_pos, p_timeline_only);
|
emit_signal(SNAME("timeline_changed"), p_new_pos, p_timeline_only, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AnimationTrackEditor::_track_remove_request(int p_track) {
|
void AnimationTrackEditor::_track_remove_request(int p_track) {
|
||||||
|
@ -3787,6 +3787,7 @@ void AnimationTrackEditor::set_anim_pos(float p_pos) {
|
||||||
}
|
}
|
||||||
_redraw_groups();
|
_redraw_groups();
|
||||||
bezier_edit->set_play_position(p_pos);
|
bezier_edit->set_play_position(p_pos);
|
||||||
|
emit_signal(SNAME("timeline_changed"), p_pos, true, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool track_type_is_resettable(Animation::TrackType p_type) {
|
static bool track_type_is_resettable(Animation::TrackType p_type) {
|
||||||
|
|
|
@ -1395,23 +1395,14 @@ void AnimationPlayerEditor::_current_animation_changed(const String &p_name) {
|
||||||
void AnimationPlayerEditor::_animation_key_editor_anim_len_changed(float p_len) {
|
void AnimationPlayerEditor::_animation_key_editor_anim_len_changed(float p_len) {
|
||||||
frame->set_max(p_len);
|
frame->set_max(p_len);
|
||||||
}
|
}
|
||||||
|
void AnimationPlayerEditor::_animation_key_editor_seek(float p_pos, bool p_timeline_only, bool p_update_position_only) {
|
||||||
void AnimationPlayerEditor::_animation_key_editor_seek(float p_pos, bool p_timeline_only) {
|
|
||||||
timeline_position = p_pos;
|
timeline_position = p_pos;
|
||||||
|
|
||||||
if (!is_visible_in_tree()) {
|
if (!is_visible_in_tree() ||
|
||||||
return;
|
p_update_position_only ||
|
||||||
}
|
!player ||
|
||||||
|
player->is_playing() ||
|
||||||
if (!player) {
|
!player->has_animation(player->get_assigned_animation())) {
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (player->is_playing()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!player->has_animation(player->get_assigned_animation())) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -214,7 +214,7 @@ class AnimationPlayerEditor : public VBoxContainer {
|
||||||
void _animation_player_changed(Object *p_pl);
|
void _animation_player_changed(Object *p_pl);
|
||||||
void _animation_libraries_updated();
|
void _animation_libraries_updated();
|
||||||
|
|
||||||
void _animation_key_editor_seek(float p_pos, bool p_timeline_only = false);
|
void _animation_key_editor_seek(float p_pos, bool p_timeline_only = false, bool p_update_position_only = false);
|
||||||
void _animation_key_editor_anim_len_changed(float p_len);
|
void _animation_key_editor_anim_len_changed(float p_len);
|
||||||
|
|
||||||
virtual void shortcut_input(const Ref<InputEvent> &p_ev) override;
|
virtual void shortcut_input(const Ref<InputEvent> &p_ev) override;
|
||||||
|
|
Loading…
Reference in a new issue