Merge pull request #83637 from kitbdev/tab-drag-fix

Fix `TabBar` and `TabContainer` dragging issues
This commit is contained in:
Rémi Verschelde 2023-10-23 12:40:54 +02:00
commit e2dc96b66b
No known key found for this signature in database
GPG key ID: C3336907360768E1
6 changed files with 120 additions and 181 deletions

View file

@ -4770,21 +4770,15 @@ void EditorNode::_dock_select_input(const Ref<InputEvent> &p_input) {
Ref<InputEventMouseButton> mb = me;
if (mb.is_valid() && mb->get_button_index() == MouseButton::LEFT && mb->is_pressed() && dock_popup_selected_idx != nrect) {
Control *dock = dock_slot[dock_popup_selected_idx]->get_current_tab_control();
if (dock) {
dock_slot[dock_popup_selected_idx]->remove_child(dock);
}
dock_slot[nrect]->move_tab_from_tab_container(dock_slot[dock_popup_selected_idx], dock_slot[dock_popup_selected_idx]->get_current_tab(), dock_slot[nrect]->get_tab_count());
if (dock_slot[dock_popup_selected_idx]->get_tab_count() == 0) {
dock_slot[dock_popup_selected_idx]->hide();
} else {
dock_slot[dock_popup_selected_idx]->set_current_tab(0);
}
dock_slot[nrect]->add_child(dock);
dock_popup_selected_idx = nrect;
dock_slot[nrect]->set_current_tab(dock_slot[nrect]->get_tab_count() - 1);
dock_slot[nrect]->set_tab_title(dock_slot[nrect]->get_tab_count() - 1, TTRGET(dock->get_name()));
dock_slot[nrect]->show();
dock_select->queue_redraw();