diff options
Diffstat (limited to 'src/platformsupport')
4 files changed, 10 insertions, 13 deletions
diff --git a/src/platformsupport/dbusmenu/qdbusmenuconnection.cpp b/src/platformsupport/dbusmenu/qdbusmenuconnection.cpp index a8211f63ce..73793d7497 100644 --- a/src/platformsupport/dbusmenu/qdbusmenuconnection.cpp +++ b/src/platformsupport/dbusmenu/qdbusmenuconnection.cpp @@ -63,14 +63,14 @@ QDBusMenuConnection::QDBusMenuConnection(QObject *parent) : QObject(parent) , m_connection(QDBusConnection::sessionBus()) , m_dbusWatcher(new QDBusServiceWatcher(StatusNotifierWatcherService, m_connection, QDBusServiceWatcher::WatchForRegistration, this)) - , m_watcherRegistered(false) + , m_statusNotifierHostRegistered(false) { #ifndef QT_NO_SYSTEMTRAYICON - // Start monitoring if any known tray-related services are registered. - if (m_connection.interface()->isServiceRegistered(StatusNotifierWatcherService)) - m_watcherRegistered = true; + QDBusInterface systrayHost(StatusNotifierWatcherService, StatusNotifierWatcherPath, StatusNotifierWatcherService, m_connection); + if (systrayHost.isValid() && systrayHost.property("IsStatusNotifierHostRegistered").toBool()) + m_statusNotifierHostRegistered = true; else - qCDebug(qLcMenu) << "failed to find service" << StatusNotifierWatcherService; + qCDebug(qLcMenu) << "StatusNotifierHost is not registered"; #endif } diff --git a/src/platformsupport/dbusmenu/qdbusmenuconnection_p.h b/src/platformsupport/dbusmenu/qdbusmenuconnection_p.h index 377999c365..8d230bd3bf 100644 --- a/src/platformsupport/dbusmenu/qdbusmenuconnection_p.h +++ b/src/platformsupport/dbusmenu/qdbusmenuconnection_p.h @@ -63,7 +63,7 @@ class QDBusMenuConnection : public QObject public: QDBusMenuConnection(QObject *parent = 0); QDBusConnection connection() const { return m_connection; } - bool isWatcherRegistered() const { return m_watcherRegistered; } + bool isStatusNotifierHostRegistered() const { return m_statusNotifierHostRegistered; } #ifndef QT_NO_SYSTEMTRAYICON bool registerTrayIcon(QDBusTrayIcon *item); bool unregisterTrayIcon(QDBusTrayIcon *item); @@ -80,7 +80,7 @@ private Q_SLOTS: private: QDBusConnection m_connection; QDBusServiceWatcher *m_dbusWatcher; - bool m_watcherRegistered; + bool m_statusNotifierHostRegistered; }; QT_END_NAMESPACE diff --git a/src/platformsupport/dbustray/qdbustrayicon.cpp b/src/platformsupport/dbustray/qdbustrayicon.cpp index 18e72d852a..d85d29a5c7 100644 --- a/src/platformsupport/dbustray/qdbustrayicon.cpp +++ b/src/platformsupport/dbustray/qdbustrayicon.cpp @@ -281,11 +281,8 @@ void QDBusTrayIcon::notificationClosed(uint id, uint reason) bool QDBusTrayIcon::isSystemTrayAvailable() const { QDBusMenuConnection * conn = const_cast<QDBusTrayIcon *>(this)->dBusConnection(); - - // If the KDE watcher service is registered, we must be on a desktop - // where a StatusNotifier-conforming system tray exists. - qCDebug(qLcTray) << conn->isWatcherRegistered(); - return conn->isWatcherRegistered(); + qCDebug(qLcTray) << conn->isStatusNotifierHostRegistered(); + return conn->isStatusNotifierHostRegistered(); } QT_END_NAMESPACE diff --git a/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp b/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp index 3fffec0dfd..ba328bfb41 100644 --- a/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp +++ b/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp @@ -98,7 +98,7 @@ static bool isDBusTrayAvailable() { static bool dbusTrayAvailableKnown = false; if (!dbusTrayAvailableKnown) { QDBusMenuConnection conn; - if (conn.isWatcherRegistered()) + if (conn.isStatusNotifierHostRegistered()) dbusTrayAvailable = true; dbusTrayAvailableKnown = true; qCDebug(qLcTray) << "D-Bus tray available:" << dbusTrayAvailable; |