فهرست منبع

Fix a bug with moving dock left and right.

Fixes #67039

`get_index` counts internal children by default but `move_child` ignores them therefore `move_child` had no effect.

The call to `set_current_tab` is not needed anymore in Godot 4 since the current tab will change when calling `move_child`.
HolonProduction 2 سال پیش
والد
کامیت
301a8fd559
1فایلهای تغییر یافته به همراه2 افزوده شده و 4 حذف شده
  1. 2 4
      editor/editor_node.cpp

+ 2 - 4
editor/editor_node.cpp

@@ -4678,8 +4678,7 @@ void EditorNode::_dock_move_left() {
 	if (!current_ctl || !prev_ctl) {
 	if (!current_ctl || !prev_ctl) {
 		return;
 		return;
 	}
 	}
-	dock_slot[dock_popup_selected_idx]->move_child(current_ctl, prev_ctl->get_index());
-	dock_slot[dock_popup_selected_idx]->set_current_tab(dock_slot[dock_popup_selected_idx]->get_current_tab() - 1);
+	dock_slot[dock_popup_selected_idx]->move_child(current_ctl, prev_ctl->get_index(false));
 	dock_select->queue_redraw();
 	dock_select->queue_redraw();
 	_edit_current();
 	_edit_current();
 	_save_docks();
 	_save_docks();
@@ -4691,8 +4690,7 @@ void EditorNode::_dock_move_right() {
 	if (!current_ctl || !next_ctl) {
 	if (!current_ctl || !next_ctl) {
 		return;
 		return;
 	}
 	}
-	dock_slot[dock_popup_selected_idx]->move_child(next_ctl, current_ctl->get_index());
-	dock_slot[dock_popup_selected_idx]->set_current_tab(dock_slot[dock_popup_selected_idx]->get_current_tab() + 1);
+	dock_slot[dock_popup_selected_idx]->move_child(next_ctl, current_ctl->get_index(false));
 	dock_select->queue_redraw();
 	dock_select->queue_redraw();
 	_edit_current();
 	_edit_current();
 	_save_docks();
 	_save_docks();