fix layout: set widget parent, tell parent to update geometry
This commit is contained in:
parent
231499f24c
commit
d5b59a67ac
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue