Kaynağa Gözat

Collapse bottom panel if there is no active tab

(cherry picked from commit 59ae7e2445a43a126c9ce01de156a1c1a279faa8)
kobewi 2 yıl önce
ebeveyn
işleme
a79160ebd2
1 değiştirilmiş dosya ile 13 ekleme ve 5 silme
  1. 13 5
      editor/editor_node.cpp

+ 13 - 5
editor/editor_node.cpp

@@ -5275,21 +5275,29 @@ void EditorNode::_save_central_editor_layout_to_config(Ref<ConfigFile> p_config_
 void EditorNode::_load_central_editor_layout_from_config(Ref<ConfigFile> p_config_file) {
 	// Bottom panel.
 
-	if (p_config_file->has_section_key(EDITOR_NODE_CONFIG_SECTION, "center_split_offset")) {
-		int center_split_offset = p_config_file->get_value(EDITOR_NODE_CONFIG_SECTION, "center_split_offset");
-		center_split->set_split_offset(center_split_offset);
-	}
-
+	bool has_active_tab = false;
 	if (p_config_file->has_section_key(EDITOR_NODE_CONFIG_SECTION, "selected_bottom_panel_item")) {
 		int selected_bottom_panel_item_idx = p_config_file->get_value(EDITOR_NODE_CONFIG_SECTION, "selected_bottom_panel_item");
 		if (selected_bottom_panel_item_idx >= 0 && selected_bottom_panel_item_idx < bottom_panel_items.size()) {
 			// Make sure we don't try to open contextual editors which are not enabled in the current context.
 			if (bottom_panel_items[selected_bottom_panel_item_idx].button->is_visible()) {
 				_bottom_panel_switch(true, selected_bottom_panel_item_idx);
+				has_active_tab = true;
 			}
 		}
 	}
 
+	if (p_config_file->has_section_key(EDITOR_NODE_CONFIG_SECTION, "center_split_offset")) {
+		int center_split_offset = p_config_file->get_value(EDITOR_NODE_CONFIG_SECTION, "center_split_offset");
+		center_split->set_split_offset(center_split_offset);
+
+		// If there is no active tab we need to collapse the panel.
+		if (!has_active_tab) {
+			bottom_panel_items[0].control->show(); // _bottom_panel_switch() can collapse only visible tabs.
+			_bottom_panel_switch(false, 0);
+		}
+	}
+
 	// Debugger tab.
 
 	if (p_config_file->has_section_key(EDITOR_NODE_CONFIG_SECTION, "selected_default_debugger_tab_idx")) {