Properly check for systray being available

Authored by mck182.

Description

Properly check for systray being available

The "org.kde.StatusNotifierWatcher" is just a watcher/helper, not the
actual systray object, that's "org.kde.StatusNotifierHost-$PID". Because
Plasma appends the PID (as per the specification), we cannot check
directly for it being present on the bus, so we check the
org.kde.StatusNotifierWatcher.IsStatusNotifierHostRegistered property
that's meant to be used for this.

Plus QSystemTrayIcon::isSystemTrayAvailable() is actually returning
always true, because the Watcher is in kded and is /always/ present.

This also fixes many apps with KSNI crashing on plasma exit, bug 339707
(though I believe this is not the direct cause for that bug)

REVIEW: 121885
BUG: 339707
CHANGELOG

Details

Committed
mck182Jan 14 2015, 3:13 PM
Parents
R135:f2aeed687fb9: Update installation variables.
Branches
Unknown
Tags
Unknown