Home
Phabricator
Search
Log In
Files
F7633806
p.patch
anthonyfieroni (Anthony Fieroni)
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Author
anthonyfieroni
Created
Oct 20 2019, 5:54 AM
Size
1 KB
Mime Type
text/x-diff
Engine
blob
Format
Raw Data
Handle
4891934
Attached To
D24755: [KStatusNotifierItem] Optionaly, do not take menu ownership
p.patch
View Options
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;
Log In to Comment