Ver código fonte

Merge pull request #90816 from kitbdev/dock-dont-edit-current

Don't edit current when changing docks
Rémi Verschelde 1 ano atrás
pai
commit
8ab5ab19c3
2 arquivos alterados com 4 adições e 4 exclusões
  1. 0 1
      editor/editor_dock_manager.cpp
  2. 4 3
      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 - 3
editor/editor_inspector.cpp

@@ -3477,7 +3477,9 @@ void EditorInspector::edit(Object *p_object) {
 	next_object = p_object; // Some plugins need to know the next edited object when clearing the inspector.
 	if (object) {
 		_clear();
-		object->disconnect("property_list_changed", callable_mp(this, &EditorInspector::_changed_callback));
+		if (object->is_connected("property_list_changed", callable_mp(this, &EditorInspector::_changed_callback))) {
+			object->disconnect("property_list_changed", callable_mp(this, &EditorInspector::_changed_callback));
+		}
 	}
 	per_array_page.clear();
 
@@ -4019,14 +4021,13 @@ void EditorInspector::_notification(int p_what) {
 		} break;
 
 		case NOTIFICATION_PREDELETE: {
-			edit(nullptr); //just in case
+			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: {