mirror of
https://github.com/godotengine/godot.git
synced 2024-11-22 12:12:28 +00:00
Fix errors when closing floating docks
dock->get_index() on line 4463 was not behaving as expected due to dock having an internal sibling, so now we just get the index excluding internal nodes. line 4742 would throw an error if you made multiple docks floating then redocked the end docks first, but no longer
This commit is contained in:
parent
9b9bb418cb
commit
21578e0bb4
@ -4738,8 +4738,8 @@ void EditorNode::_dock_floating_close_request(Control *p_control) {
|
||||
|
||||
p_control->get_parent()->remove_child(p_control);
|
||||
dock_slot[window_slot]->add_child(p_control);
|
||||
dock_slot[window_slot]->move_child(p_control, MIN((int)window->get_meta("dock_index"), dock_slot[window_slot]->get_tab_count()));
|
||||
dock_slot[window_slot]->set_current_tab(window->get_meta("dock_index"));
|
||||
dock_slot[window_slot]->move_child(p_control, MIN((int)window->get_meta("dock_index"), dock_slot[window_slot]->get_tab_count() - 1));
|
||||
dock_slot[window_slot]->set_current_tab(dock_slot[window_slot]->get_tab_idx_from_control(p_control));
|
||||
dock_slot[window_slot]->set_tab_title(dock_slot[window_slot]->get_tab_idx_from_control(p_control), TTRGET(p_control->get_name()));
|
||||
|
||||
window->queue_free();
|
||||
@ -4760,7 +4760,7 @@ void EditorNode::_dock_make_float() {
|
||||
Size2 dock_size = dock->get_size() + borders * 2;
|
||||
Point2 dock_screen_pos = dock->get_global_position() + get_tree()->get_root()->get_position() - borders;
|
||||
|
||||
int dock_index = dock->get_index();
|
||||
int dock_index = dock->get_index(false);
|
||||
dock_slot[dock_popup_selected_idx]->remove_child(dock);
|
||||
|
||||
Window *window = memnew(Window);
|
||||
|
Loading…
Reference in New Issue
Block a user