fix systray to work with spec-breaking apps, eg. steam
authorMike Blumenkrantz <zmike@osg.samsung.com>
Sun, 4 Oct 2015 12:41:07 +0000 (08:41 -0400)
committerMike Blumenkrantz <zmike@osg.samsung.com>
Sun, 4 Oct 2015 12:49:01 +0000 (08:49 -0400)
commit6ff98d8a397a496bdfbdc9cf61533b82de3f206e
treeae352969563c04403e153562bf10b1925c754855
parent4d30674ab87001d6a1515908341d756d75a22a89
fix systray to work with spec-breaking apps, eg. steam

according to the StatusNotifierItem specification, applications
register "service org.freedesktop.StatusNotifierItem-PID-ID" on the
session bus, and then "must register the unique instance name
to the StatusNotifierWatcher".

some applications, such as steam, instead register the path that they
will run on (/org/ayatana/NotificationItem/steam) and then expect the
watcher to register the method call's send id bus: this is totally bogus.

to catch this, when registering the new item the enlightenment watcher must
first determine if the item is spec-conforming. if yes, proceed as normal.
if no, pretend the application knows what it's doing and try to make things
work as expected anyway

for more details, read the full spec here
http://www.freedesktop.org/wiki/Specifications/StatusNotifierItem

fix T2763
src/modules/systray/e_mod_notifier_host_dbus.c
src/modules/systray/e_mod_notifier_host_private.h
src/modules/systray/e_mod_notifier_watcher.c