diff options
Diffstat (limited to 'src/ui/components')
| -rw-r--r-- | src/ui/components/Component.cpp | 10 | ||||
| -rw-r--r-- | src/ui/components/Menu.cpp | 2 |
2 files changed, 11 insertions, 1 deletions
diff --git a/src/ui/components/Component.cpp b/src/ui/components/Component.cpp index 01db8710..d0525a1c 100644 --- a/src/ui/components/Component.cpp +++ b/src/ui/components/Component.cpp @@ -4,4 +4,14 @@ namespace cru::ui::components { void Component::OnPrepareDelete() { GetRootControl()->RemoveFromParent(); } + +void Component::DeleteIfDeleteByParent(bool delete_later) { + if (delete_by_parent_) { + if (delete_later) { + DeleteLater(); + } else { + delete this; + } + } +} } // namespace cru::ui::components diff --git a/src/ui/components/Menu.cpp b/src/ui/components/Menu.cpp index 65c1e810..04227d66 100644 --- a/src/ui/components/Menu.cpp +++ b/src/ui/components/Menu.cpp @@ -33,7 +33,7 @@ Menu::Menu() { Menu::~Menu() { for (auto item : items_) { - delete item; + item->DeleteIfDeleteByParent(false); } } |
