summaryrefslogtreecommitdiffstats
path: root/src/platformsupport/dbusmenu/qdbusmenuconnection.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/platformsupport/dbusmenu/qdbusmenuconnection.cpp')
-rw-r--r--src/platformsupport/dbusmenu/qdbusmenuconnection.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/platformsupport/dbusmenu/qdbusmenuconnection.cpp b/src/platformsupport/dbusmenu/qdbusmenuconnection.cpp
index 361146dc23..a9d758209a 100644
--- a/src/platformsupport/dbusmenu/qdbusmenuconnection.cpp
+++ b/src/platformsupport/dbusmenu/qdbusmenuconnection.cpp
@@ -95,6 +95,12 @@ bool QDBusMenuConnection::registerTrayIconMenu(QDBusTrayIcon *item)
return success;
}
+void QDBusMenuConnection::unregisterTrayIconMenu(QDBusTrayIcon *item)
+{
+ if (item->menu())
+ connection().unregisterObject(MenuBarPath);
+}
+
bool QDBusMenuConnection::registerTrayIcon(QDBusTrayIcon *item)
{
bool success = connection().registerService(item->instanceId());
@@ -124,7 +130,7 @@ bool QDBusMenuConnection::registerTrayIcon(QDBusTrayIcon *item)
bool QDBusMenuConnection::unregisterTrayIcon(QDBusTrayIcon *item)
{
- connection().unregisterObject(MenuBarPath);
+ unregisterTrayIconMenu(item);
connection().unregisterObject(StatusNotifierItemPath);
bool success = connection().unregisterService(item->instanceId());
if (!success)