diff options
author | RĂ©mi Verschelde <rverschelde@gmail.com> | 2020-01-31 09:10:37 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-31 09:10:37 +0100 |
commit | 9b088958ec118b0029dc37b846b6610ef4711ef3 (patch) | |
tree | acd7a1ce643e99a8efc5fd8552ca23e6c8837d08 /scene | |
parent | fa7e2dd2ad77dbb75bad2ee82d0176c0d66c620c (diff) | |
parent | c0a84f747ea165369b1b4a6f531528368e9b8757 (diff) |
Merge pull request #35540 from nathanwfranke/tab-container-fix
Fix tab container too large when tabs are hidden
Diffstat (limited to 'scene')
-rw-r--r-- | scene/gui/tab_container.cpp | 16 | ||||
-rw-r--r-- | scene/gui/tab_container.h | 2 |
2 files changed, 11 insertions, 7 deletions
diff --git a/scene/gui/tab_container.cpp b/scene/gui/tab_container.cpp index c3ddc41813..b045ff4fe1 100644 --- a/scene/gui/tab_container.cpp +++ b/scene/gui/tab_container.cpp @@ -785,23 +785,25 @@ TabContainer::TabAlign TabContainer::get_tab_align() const { return align; } -void TabContainer::set_tabs_visible(bool p_visibe) { +void TabContainer::set_tabs_visible(bool p_visible) { - if (p_visibe == tabs_visible) + if (p_visible == tabs_visible) return; - tabs_visible = p_visibe; + tabs_visible = p_visible; Vector<Control *> tabs = _get_tabs(); for (int i = 0; i < tabs.size(); i++) { Control *c = tabs[i]; - if (p_visibe) + if (p_visible) c->set_margin(MARGIN_TOP, _get_top_margin()); else c->set_margin(MARGIN_TOP, 0); } + update(); + minimum_size_changed(); } bool TabContainer::are_tabs_visible() const { @@ -936,8 +938,10 @@ Size2 TabContainer::get_minimum_size() const { Ref<StyleBox> tab_disabled = get_stylebox("tab_disabled"); Ref<Font> font = get_font("font"); - ms.y += MAX(MAX(tab_bg->get_minimum_size().y, tab_fg->get_minimum_size().y), tab_disabled->get_minimum_size().y); - ms.y += font->get_height(); + if (tabs_visible) { + ms.y += MAX(MAX(tab_bg->get_minimum_size().y, tab_fg->get_minimum_size().y), tab_disabled->get_minimum_size().y); + ms.y += font->get_height(); + } Ref<StyleBox> sb = get_stylebox("panel"); ms += sb->get_minimum_size(); diff --git a/scene/gui/tab_container.h b/scene/gui/tab_container.h index e69c2ae289..c5a9045ca6 100644 --- a/scene/gui/tab_container.h +++ b/scene/gui/tab_container.h @@ -87,7 +87,7 @@ public: void set_tab_align(TabAlign p_align); TabAlign get_tab_align() const; - void set_tabs_visible(bool p_visibe); + void set_tabs_visible(bool p_visible); bool are_tabs_visible() const; void set_tab_title(int p_tab, const String &p_title); |