File Metadata

Author
anthonyfieroni
Created
Oct 20 2019, 5:54 AM
diff --git a/src/kstatusnotifieritem.cpp b/src/kstatusnotifieritem.cpp
index 5aa90d5..43596ac 100644
--- a/src/kstatusnotifieritem.cpp
+++ b/src/kstatusnotifieritem.cpp
@@ -70,7 +70,7 @@ KStatusNotifierItem::~KStatusNotifierItem()
delete d->statusNotifierWatcher;
delete d->notificationsClient;
delete d->systemTrayIcon;
- if (!qApp->closingDown()) {
+ if (!qApp->closingDown() && !d->menu->parent()) {
delete d->menu;
}
if (d->associatedWidget) {
@@ -420,7 +420,9 @@ void KStatusNotifierItem::setContextMenu(QMenu *menu)
{
if (d->menu && d->menu != menu) {
d->menu->removeEventFilter(this);
- delete d->menu;
+ if (!d->menu->parent()) {
+ delete d->menu;
+ }
}
if (!menu) {
@@ -450,7 +452,6 @@ void KStatusNotifierItem::setContextMenu(QMenu *menu)
d->menu = menu;
Qt::WindowFlags oldFlags = d->menu->windowFlags();
- d->menu->setParent(nullptr);
d->menu->setWindowFlags(oldFlags);
}
diff --git a/src/kstatusnotifieritemprivate_p.h b/src/kstatusnotifieritemprivate_p.h
index f3f18f4..18eb1cd 100644
--- a/src/kstatusnotifieritemprivate_p.h
+++ b/src/kstatusnotifieritemprivate_p.h
@@ -155,7 +155,7 @@ public:
QString iconThemePath;
QString menuObjectPath;
- QMenu *menu;
+ QPointer<QMenu> menu;
QHash<QString, QAction *> actionCollection;
QWidget *associatedWidget;
QPoint associatedWidgetPos;