Merge pull request #70170 from TokageItLab/fix-anim-keying-crash

Make keys deselected when keying property for animation to avoid crash
This commit is contained in:
Rémi Verschelde 2022-12-20 10:31:59 +01:00
commit 281f548dc2
No known key found for this signature in database
GPG key ID: C3336907360768E1
2 changed files with 6 additions and 3 deletions

View file

@ -1922,10 +1922,12 @@ void AnimationPlayerEditorPlugin::_notification(int p_what) {
}
void AnimationPlayerEditorPlugin::_property_keyed(const String &p_keyed, const Variant &p_value, bool p_advance) {
if (!anim_editor->get_track_editor()->has_keying()) {
AnimationTrackEditor *te = anim_editor->get_track_editor();
if (!te || !te->has_keying()) {
return;
}
anim_editor->get_track_editor()->insert_value_key(p_keyed, p_value, p_advance);
te->_clear_selection();
te->insert_value_key(p_keyed, p_value, p_advance);
}
void AnimationPlayerEditorPlugin::_transform_key_request(Object *sp, const String &p_sub, const Transform3D &p_key) {

View file

@ -153,9 +153,10 @@ void BoneTransformEditor::set_target(const String &p_prop) {
void BoneTransformEditor::_property_keyed(const String &p_path, bool p_advance) {
AnimationTrackEditor *te = AnimationPlayerEditor::get_singleton()->get_track_editor();
if (!te->has_keying()) {
if (!te || !te->has_keying()) {
return;
}
te->_clear_selection();
PackedStringArray split = p_path.split("/");
if (split.size() == 3 && split[0] == "bones") {
int bone_idx = split[1].to_int();