From f65d0502a9f0fc44be0dd79a5f3f31697bb3aad0 Mon Sep 17 00:00:00 2001 From: crupest Date: Thu, 10 Feb 2022 22:06:50 +0800 Subject: ... --- src/ui/render/TreeRenderObject.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/ui/render') diff --git a/src/ui/render/TreeRenderObject.cpp b/src/ui/render/TreeRenderObject.cpp index 9bf74535..8bf662e4 100644 --- a/src/ui/render/TreeRenderObject.cpp +++ b/src/ui/render/TreeRenderObject.cpp @@ -9,6 +9,11 @@ TreeRenderObjectItem::TreeRenderObjectItem(TreeRenderObject* tree_render_object, : tree_render_object_(tree_render_object), parent_(parent) {} TreeRenderObjectItem::~TreeRenderObjectItem() { + if (render_object_) { + render_object_->SetParent(nullptr); + render_object_ = nullptr; + } + for (auto child : children_) { delete child; } @@ -16,7 +21,14 @@ TreeRenderObjectItem::~TreeRenderObjectItem() { void TreeRenderObjectItem::SetRenderObject(RenderObject* render_object) { if (render_object == render_object_) return; + if (render_object_) { + render_object_->SetParent(nullptr); + } render_object_ = render_object; + if (render_object) { + assert(render_object->GetParent() == nullptr); + render_object->SetParent(tree_render_object_); + } tree_render_object_->InvalidateLayout(); } -- cgit v1.2.3