Merge pull request #91854 from ImpishOaths/PullReady

Don't lose in/out handles when bezier keyframe inserted on top of existing keyframe
This commit is contained in:
Rémi Verschelde 2024-08-26 22:44:52 +02:00
commit a5e157dd37
No known key found for this signature in database
GPG key ID: C3336907360768E1

View file

@ -4500,7 +4500,14 @@ AnimationTrackEditor::TrackIndices AnimationTrackEditor::_confirm_insert(InsertD
} break; } break;
case Animation::TYPE_BEZIER: { 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); bezier_edit_icon->set_disabled(false);
} break; } break;
default: { default: {