diff --git a/Libraries/LibGUI/GTabWidget.cpp b/Libraries/LibGUI/GTabWidget.cpp index 049be01b1b..a5dc20864f 100644 --- a/Libraries/LibGUI/GTabWidget.cpp +++ b/Libraries/LibGUI/GTabWidget.cpp @@ -45,13 +45,18 @@ void GTabWidget::resize_event(GResizeEvent& event) Rect GTabWidget::child_rect_for_size(const Size& size) const { + Rect rect; switch (m_tab_position) { case TabPosition::Top: - return { { container_padding(), bar_height() + container_padding() }, { size.width() - container_padding() * 2, size.height() - bar_height() - container_padding() * 2 } }; + rect = { { container_padding(), bar_height() + container_padding() }, { size.width() - container_padding() * 2, size.height() - bar_height() - container_padding() * 2 } }; + break; case TabPosition::Bottom: - return { { container_padding(), container_padding() }, { size.width() - container_padding() * 2, size.height() - bar_height() - container_padding() * 2 } }; + rect = { { container_padding(), container_padding() }, { size.width() - container_padding() * 2, size.height() - bar_height() - container_padding() * 2 } }; + break; } - ASSERT_NOT_REACHED(); + if (rect.is_empty()) + return {}; + return rect; } void GTabWidget::child_event(CChildEvent& event) diff --git a/Libraries/LibGUI/GWidget.cpp b/Libraries/LibGUI/GWidget.cpp index ae7f1a0c3a..a89c1062cf 100644 --- a/Libraries/LibGUI/GWidget.cpp +++ b/Libraries/LibGUI/GWidget.cpp @@ -44,6 +44,8 @@ void GWidget::child_event(CChildEvent& event) void GWidget::set_relative_rect(const Rect& rect) { + ASSERT(rect.width() >= 0 && rect.height() >= 0); + if (rect == m_relative_rect) return;