Explorar o código

Don't edit current when changing docks v2

kit hai 1 ano
pai
achega
eefd311456
Modificáronse 2 ficheiros con 4 adicións e 3 borrados
  1. 0 1
      editor/editor_dock_manager.cpp
  2. 4 2
      editor/editor_inspector.cpp

+ 0 - 1
editor/editor_dock_manager.cpp

@@ -147,7 +147,6 @@ void EditorDockManager::_update_layout() {
 	if (!dock_context_popup->is_inside_tree() || EditorNode::get_singleton()->is_exiting()) {
 		return;
 	}
-	EditorNode::get_singleton()->edit_current();
 	dock_context_popup->docks_updated();
 	_update_docks_menu();
 	EditorNode::get_singleton()->save_editor_layout_delayed();

+ 4 - 2
editor/editor_inspector.cpp

@@ -4019,14 +4019,16 @@ void EditorInspector::_notification(int p_what) {
 		} break;
 
 		case NOTIFICATION_PREDELETE: {
-			edit(nullptr); //just in case
+			if (EditorNode::get_singleton() && !EditorNode::get_singleton()->is_exiting()) {
+				// Don't need to clean up if exiting, and object may already be freed.
+				edit(nullptr);
+			}
 		} break;
 
 		case NOTIFICATION_EXIT_TREE: {
 			if (!sub_inspector) {
 				get_tree()->disconnect("node_removed", callable_mp(this, &EditorInspector::_node_removed));
 			}
-			edit(nullptr);
 		} break;
 
 		case NOTIFICATION_VISIBILITY_CHANGED: {