|
@@ -3873,6 +3873,12 @@ struct _AnimMoveRestore {
|
|
|
|
|
|
void AnimationTrackEditor::_clear_key_edit() {
|
|
|
if (key_edit) {
|
|
|
+
|
|
|
+#if 0
|
|
|
+ // going back seems like the most comfortable thing to do, but it results
|
|
|
+ // in weird behaviors and crashes, because going back to animation editor
|
|
|
+ // triggers the editor setting up again itself
|
|
|
+
|
|
|
bool go_back = false;
|
|
|
if (EditorNode::get_singleton()->get_inspector()->get_edited_object() == key_edit) {
|
|
|
EditorNode::get_singleton()->push_item(NULL);
|
|
@@ -3885,6 +3891,15 @@ void AnimationTrackEditor::_clear_key_edit() {
|
|
|
if (go_back) {
|
|
|
EditorNode::get_singleton()->get_inspector_dock()->go_back();
|
|
|
}
|
|
|
+#else
|
|
|
+ //if key edit is the object being inspected, remove it first
|
|
|
+ if (EditorNode::get_singleton()->get_inspector()->get_edited_object() == key_edit) {
|
|
|
+ EditorNode::get_singleton()->push_item(NULL);
|
|
|
+ }
|
|
|
+ //then actually delete it
|
|
|
+ memdelete(key_edit);
|
|
|
+ key_edit = NULL;
|
|
|
+#endif
|
|
|
}
|
|
|
}
|
|
|
|