Commit Graph

11 Commits

Author SHA1 Message Date
Mike Blumenkrantz 1f42932ede clean up some systray leaks 2015-10-26 13:11:32 -04:00
Mike Blumenkrantz dc872be2df check systray dbus name existence before attempting to recover session
in the case that a system error occurs the dbus method for returning the
session name can fail, leading to a null return

CID 1327399
2015-10-15 13:13:22 -04:00
Mike Blumenkrantz 56ff9ead03 use dbus unique name for tracking systray sessions
the env var DBUS_SESSION_BUS_ADDRESS may not be set for all platforms
where enlightenment+dbus are usable, so it's necessary to get the dbus
id to ensure that this value exists and is properly tracked
2015-10-15 13:13:22 -04:00
Mike Blumenkrantz 432d1e3776 cache systray items for each dbus session
the current spec does not directly require any behavior from clients
when a systray host, leading to an issue where clients do not re-register
their items when a new host appears

when using an in-process systray watcher, as the current implementation does,
the best choice for maintaining consistency for systray items across restarts
is to cache them according to the current dbus session. the process of setting
up the item will validate it on subsequent restarts, and changes to the session
will clear the cache

fix T2786
2015-10-14 16:30:41 -04:00
Mike Blumenkrantz 6ff98d8a39 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
2015-10-04 08:49:01 -04:00
Mike Blumenkrantz 0978d22f8e fix systray implementation of notifier watcher (StatusNotifierItem)
previously, this would throw dbus errors (or not) and then do nothing in
many cases. now it manages bus/path names more effectively and falls back
to binary image data when an icon path is not available

fix T2626 and probably some others
2015-09-22 18:38:34 -04:00
Chris Michael 7861f5e69c bugfix: Cleanup systray module having missing initializers for Eldbus
Message & Signals

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-09-18 14:17:50 -04:00
Mike Blumenkrantz 43ed524431 > be in 2013
> still using sprintf
2014-05-08 17:00:15 -04:00
Lucas De Marchi f8a2dd4d95 Rename edbus->eldbus 2013-04-23 12:37:43 -03:00
Lucas De Marchi 33eab461c1 e systray: sanitize edbus tables
SVN revision: 82115
2013-01-03 22:07:50 +00:00
José Roberto de Souza c71d0fb539 e systray: Add notifier watcher
Patch by: José Roberto de Souza  <zehortigoza@profusion.mobi>



SVN revision: 82114
2013-01-03 22:07:45 +00:00