diff options
author | crupest <crupest@outlook.com> | 2022-02-10 22:06:50 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2022-02-10 22:06:50 +0800 |
commit | f65d0502a9f0fc44be0dd79a5f3f31697bb3aad0 (patch) | |
tree | c24a3a25284c94d52af5264dda996bfdd311857b /src/ui/render | |
parent | a236a2a146bfcc4eb5c93a85cd99ac330e83a7f5 (diff) | |
download | cru-f65d0502a9f0fc44be0dd79a5f3f31697bb3aad0.tar.gz cru-f65d0502a9f0fc44be0dd79a5f3f31697bb3aad0.tar.bz2 cru-f65d0502a9f0fc44be0dd79a5f3f31697bb3aad0.zip |
...
Diffstat (limited to 'src/ui/render')
-rw-r--r-- | src/ui/render/TreeRenderObject.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
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(); } |