aboutsummaryrefslogtreecommitdiff
path: root/src/ui/components
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/components')
-rw-r--r--src/ui/components/Component.cpp10
-rw-r--r--src/ui/components/Menu.cpp2
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);
}
}