Properly check for systray being available

Review Request #121885 - Created Jan. 6, 2015 and submitted

Information
Martin Klapetek
frameworkintegration
339707
Reviewers
kdeframeworks

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, 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)

Things do not crash anymore and the ::isSystemTrayAvailable() now returns correct value.

Issues

  • 0
  • 1
  • 1
  • 2
Description From Last Updated
David Edmundson
David Faure
Martin Klapetek
David Faure
Martin Klapetek
David Edmundson
Martin Klapetek
Review request changed

Status: Closed (submitted)

Lukáš Tinkl

Ship It!

Loading...