aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/cru/ui/controls/container.hpp3
-rw-r--r--src/ui/controls/container.cpp7
2 files changed, 9 insertions, 1 deletions
diff --git a/include/cru/ui/controls/container.hpp b/include/cru/ui/controls/container.hpp
index d6aa5635..7d4c0d23 100644
--- a/include/cru/ui/controls/container.hpp
+++ b/include/cru/ui/controls/container.hpp
@@ -19,6 +19,9 @@ class Container : public ContentControl {
render::RenderObject* GetRenderObject() const override;
+ protected:
+ void OnChildChanged(Control* old_child, Control* new_child) override;
+
private:
std::unique_ptr<render::BorderRenderObject> render_object_;
};
diff --git a/src/ui/controls/container.cpp b/src/ui/controls/container.cpp
index 2075d4ba..4695ad4c 100644
--- a/src/ui/controls/container.cpp
+++ b/src/ui/controls/container.cpp
@@ -9,5 +9,10 @@ Container::Container() {
render_object_->SetBorderEnabled(false);
}
-Container::~Container() {}
+Container::~Container() = default;
+
+void Container::OnChildChanged(Control* old_child, Control* new_child) {
+ render_object_->RemoveChild(0);
+ render_object_->AddChild(new_child->GetRenderObject(), 0);
+}
} // namespace cru::ui::controls