mirror of https://github.com/godotengine/godot
Fix getting outdated tab controls
This commit is contained in:
parent
ecc86afc00
commit
c47ac20620
|
|
@ -312,7 +312,7 @@ Vector<Control *> TabContainer::_get_tab_controls() const {
|
||||||
Vector<Control *> controls;
|
Vector<Control *> controls;
|
||||||
for (int i = 0; i < get_child_count(); i++) {
|
for (int i = 0; i < get_child_count(); i++) {
|
||||||
Control *control = Object::cast_to<Control>(get_child(i));
|
Control *control = Object::cast_to<Control>(get_child(i));
|
||||||
if (!control || control->is_set_as_top_level() || control == tab_bar) {
|
if (!control || control->is_set_as_top_level() || control == tab_bar || control == child_removing) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -549,7 +549,12 @@ void TabContainer::remove_child_notify(Node *p_child) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
tab_bar->remove_tab(get_tab_idx_from_control(c));
|
int idx = get_tab_idx_from_control(c);
|
||||||
|
|
||||||
|
// Before this, the tab control has not changed; after this, the tab control has changed.
|
||||||
|
child_removing = p_child;
|
||||||
|
tab_bar->remove_tab(idx);
|
||||||
|
child_removing = nullptr;
|
||||||
|
|
||||||
_update_margins();
|
_update_margins();
|
||||||
if (get_tab_count() == 0) {
|
if (get_tab_count() == 0) {
|
||||||
|
|
|
||||||
|
|
@ -46,6 +46,7 @@ class TabContainer : public Container {
|
||||||
bool drag_to_rearrange_enabled = false;
|
bool drag_to_rearrange_enabled = false;
|
||||||
bool use_hidden_tabs_for_min_size = false;
|
bool use_hidden_tabs_for_min_size = false;
|
||||||
bool theme_changing = false;
|
bool theme_changing = false;
|
||||||
|
Node *child_removing = nullptr;
|
||||||
|
|
||||||
int _get_top_margin() const;
|
int _get_top_margin() const;
|
||||||
Vector<Control *> _get_tab_controls() const;
|
Vector<Control *> _get_tab_controls() const;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue