fix layout: set widget parent, tell parent to update geometry

This commit is contained in:
Andrea Blankenstijn 2022-02-17 15:22:09 +01:00
parent 231499f24c
commit d5b59a67ac

View file

@ -24,6 +24,7 @@ namespace bwidgets
void add_widget(std::shared_ptr<Widget> widget_ptr) override
{
widget_ptr->parent(this);
if (renderer()) widget_ptr->renderer(renderer());
_widgets.emplace_back(std::move(widget_ptr));
}
@ -31,6 +32,8 @@ namespace bwidgets
void do_layout() override
{
_handle_geometry_change(viewport());
if (auto* layout = dynamic_cast<Layout*>(parent()); layout != nullptr) layout->do_layout();
else parent()->viewport(parent()->viewport());
}
void for_widgets(const std::function<void(Widget*)>& f) override