@@ -8235,16 +8235,15 @@ EditorNode::EditorNode() {
82358235 main_vbox->add_child (title_bar);
82368236#endif
82378237
8238- left_l_hsplit = memnew (DockSplitContainer);
8239- left_l_hsplit->set_name (" DockHSplitLeftL" );
8240- main_vbox->add_child (left_l_hsplit);
8241-
8242- left_l_hsplit->set_v_size_flags (Control::SIZE_EXPAND_FILL);
8238+ main_hsplit = memnew (DockSplitContainer);
8239+ main_hsplit->set_name (" DockHSplitMain" );
8240+ main_hsplit->set_v_size_flags (Control::SIZE_EXPAND_FILL);
8241+ main_vbox->add_child (main_hsplit);
82438242
82448243 left_l_vsplit = memnew (DockSplitContainer);
82458244 left_l_vsplit->set_name (" DockVSplitLeftL" );
82468245 left_l_vsplit->set_vertical (true );
8247- left_l_hsplit ->add_child (left_l_vsplit);
8246+ main_hsplit ->add_child (left_l_vsplit);
82488247
82498248 TabContainer *dock_slot[DockConstants::DOCK_SLOT_MAX];
82508249 dock_slot[DockConstants::DOCK_SLOT_LEFT_UL] = memnew (TabContainer);
@@ -8254,27 +8253,20 @@ EditorNode::EditorNode() {
82548253 dock_slot[DockConstants::DOCK_SLOT_LEFT_BL]->set_name (" DockSlotLeftBL" );
82558254 left_l_vsplit->add_child (dock_slot[DockConstants::DOCK_SLOT_LEFT_BL]);
82568255
8257- left_r_hsplit = memnew (DockSplitContainer);
8258- left_r_hsplit->set_name (" DockHSplitLeftR" );
8259- left_l_hsplit->add_child (left_r_hsplit);
82608256 left_r_vsplit = memnew (DockSplitContainer);
82618257 left_r_vsplit->set_name (" DockVSplitLeftR" );
82628258 left_r_vsplit->set_vertical (true );
8263- left_r_hsplit ->add_child (left_r_vsplit);
8259+ main_hsplit ->add_child (left_r_vsplit);
82648260 dock_slot[DockConstants::DOCK_SLOT_LEFT_UR] = memnew (TabContainer);
82658261 dock_slot[DockConstants::DOCK_SLOT_LEFT_UR]->set_name (" DockSlotLeftUR" );
82668262 left_r_vsplit->add_child (dock_slot[DockConstants::DOCK_SLOT_LEFT_UR]);
82678263 dock_slot[DockConstants::DOCK_SLOT_LEFT_BR] = memnew (TabContainer);
82688264 dock_slot[DockConstants::DOCK_SLOT_LEFT_BR]->set_name (" DockSlotLeftBR" );
82698265 left_r_vsplit->add_child (dock_slot[DockConstants::DOCK_SLOT_LEFT_BR]);
82708266
8271- main_hsplit = memnew (DockSplitContainer);
8272- main_hsplit->set_name (" DockHSplitMain" );
8273- left_r_hsplit->add_child (main_hsplit);
82748267 VBoxContainer *center_vb = memnew (VBoxContainer);
8275- main_hsplit->add_child (center_vb);
8276-
82778268 center_vb->set_h_size_flags (Control::SIZE_EXPAND_FILL);
8269+ main_hsplit->add_child (center_vb);
82788270
82798271 center_split = memnew (DockSplitContainer);
82808272 center_split->set_name (" DockVSplitCenter" );
@@ -8284,14 +8276,10 @@ EditorNode::EditorNode() {
82848276 center_vb->add_child (center_split);
82858277 center_split->connect (" drag_ended" , callable_mp (this , &EditorNode::_bottom_panel_resized));
82868278
8287- right_hsplit = memnew (DockSplitContainer);
8288- right_hsplit->set_name (" DockHSplitRight" );
8289- main_hsplit->add_child (right_hsplit);
8290-
82918279 right_l_vsplit = memnew (DockSplitContainer);
82928280 right_l_vsplit->set_name (" DockVSplitRightL" );
82938281 right_l_vsplit->set_vertical (true );
8294- right_hsplit ->add_child (right_l_vsplit);
8282+ main_hsplit ->add_child (right_l_vsplit);
82958283 dock_slot[DockConstants::DOCK_SLOT_RIGHT_UL] = memnew (TabContainer);
82968284 dock_slot[DockConstants::DOCK_SLOT_RIGHT_UL]->set_name (" DockSlotRightUL" );
82978285 right_l_vsplit->add_child (dock_slot[DockConstants::DOCK_SLOT_RIGHT_UL]);
@@ -8302,7 +8290,7 @@ EditorNode::EditorNode() {
83028290 right_r_vsplit = memnew (DockSplitContainer);
83038291 right_r_vsplit->set_name (" DockVSplitRightR" );
83048292 right_r_vsplit->set_vertical (true );
8305- right_hsplit ->add_child (right_r_vsplit);
8293+ main_hsplit ->add_child (right_r_vsplit);
83068294 dock_slot[DockConstants::DOCK_SLOT_RIGHT_UR] = memnew (TabContainer);
83078295 dock_slot[DockConstants::DOCK_SLOT_RIGHT_UR]->set_name (" DockSlotRightUR" );
83088296 right_r_vsplit->add_child (dock_slot[DockConstants::DOCK_SLOT_RIGHT_UR]);
@@ -8318,10 +8306,7 @@ EditorNode::EditorNode() {
83188306 editor_dock_manager->add_vsplit (right_l_vsplit);
83198307 editor_dock_manager->add_vsplit (right_r_vsplit);
83208308
8321- editor_dock_manager->add_hsplit (left_l_hsplit);
8322- editor_dock_manager->add_hsplit (left_r_hsplit);
8323- editor_dock_manager->add_hsplit (main_hsplit);
8324- editor_dock_manager->add_hsplit (right_hsplit);
8309+ editor_dock_manager->set_hsplit (main_hsplit);
83258310
83268311 for (int i = 0 ; i < DockConstants::DOCK_SLOT_BOTTOM; i++) {
83278312 editor_dock_manager->register_dock_slot ((DockConstants::DockSlot)i, dock_slot[i], DockConstants::DOCK_LAYOUT_VERTICAL);
@@ -8781,9 +8766,11 @@ EditorNode::EditorNode() {
87818766 history_dock = memnew (HistoryDock);
87828767 editor_dock_manager->add_dock (history_dock);
87838768
8784- // Add some offsets to left_r and main hsplits to make LEFT_R and RIGHT_L docks wider than minsize.
8785- left_r_hsplit->set_split_offset (280 * EDSCALE);
8786- main_hsplit->set_split_offset (-280 * EDSCALE);
8769+ // Add some offsets to make LEFT_R and RIGHT_L docks wider than minsize.
8770+ const int dock_hsize = 280 ;
8771+ // By default there is only 3 visible, so set 2 split offsets for them.
8772+ const int dock_hsize_scaled = dock_hsize * EDSCALE;
8773+ main_hsplit->set_split_offsets ({ dock_hsize_scaled, -dock_hsize_scaled });
87878774
87888775 // Define corresponding default layout.
87898776
@@ -8794,9 +8781,8 @@ EditorNode::EditorNode() {
87948781 default_layout->set_value (docks_section, " dock_4" , " FileSystem,History" );
87958782 default_layout->set_value (docks_section, " dock_5" , " Inspector,Signals,Groups" );
87968783
8797- int hsplits[] = { 0 , 280 , -280 , 0 };
8798- DEV_ASSERT ((int )std_size (hsplits) == editor_dock_manager->get_hsplit_count ());
8799- for (int i = 0 ; i < editor_dock_manager->get_hsplit_count (); i++) {
8784+ int hsplits[] = { 0 , dock_hsize, -dock_hsize, 0 };
8785+ for (int i = 0 ; i < (int )std_size (hsplits); i++) {
88008786 default_layout->set_value (docks_section, " dock_hsplit_" + itos (i + 1 ), hsplits[i]);
88018787 }
88028788 for (int i = 0 ; i < editor_dock_manager->get_vsplit_count (); i++) {
0 commit comments