Don't lose in/out handles when bezier keyframe inserted on top of existing keyframe

Apply suggestions from code review

Co-authored-by: Silc Lizard (Tokage) Renew <tokage.it.lab@gmail.com>
This commit is contained in:
ImpishOaths 2024-07-07 23:40:34 -07:00
parent b97110cd30
commit 0f7c4d8375

View file

@ -4464,7 +4464,14 @@ AnimationTrackEditor::TrackIndices AnimationTrackEditor::_confirm_insert(InsertD
} break;
case Animation::TYPE_BEZIER: {
value = animation->make_default_bezier_key(p_id.value);
int existing = animation->track_find_key(p_id.track_idx, time, Animation::FIND_MODE_APPROX);
if (existing != -1) {
Array arr = animation->track_get_key_value(p_id.track_idx, existing);
arr[0] = p_id.value;
value = arr;
} else {
value = animation->make_default_bezier_key(p_id.value);
}
bezier_edit_icon->set_disabled(false);
} break;
default: {