diff --git a/Userland/Libraries/LibGUI/Widget.cpp b/Userland/Libraries/LibGUI/Widget.cpp index 9dc15cc4d5..7d367f4c21 100644 --- a/Userland/Libraries/LibGUI/Widget.cpp +++ b/Userland/Libraries/LibGUI/Widget.cpp @@ -201,10 +201,12 @@ Widget::~Widget() = default; void Widget::layout_relevant_change_occured() { - if (auto* parent = parent_widget()) - parent->layout_relevant_change_occured(); - else - invalidate_layout(); + if (is_visible()) { + if (auto* parent = parent_widget()) + parent->layout_relevant_change_occured(); + else if (window()) + window()->schedule_relayout(); + } } void Widget::child_event(Core::ChildEvent& event)