Age | Commit message (Collapse) | Author |
|
|
|
Meson's generated config.h header defines false macros as 0, not
undefined. This means that the header line, which was checking for the
definition existing, not a non-zero value, was incorrect. Now the
swaybar tray can be used with systemd, elogind, or basu.
|
|
|
|
This allows to select a specific provider for the sd-bus library.
|
|
This removes any pending messages once the item is destroyed.
Furthermore, this installs SNI event calbacks asynchronously
in order to prevent sd-bus from bypassing pending messages.
|
|
This includes some refactoring and fixing a small memory leak.
|
|
|
|
In case a tray icon cannot be found or does not have a desirable size,
swaybar retries the search again and again, which increases load on disk
and CPU. This commit solves it by storing target_size for each icon, so
that swaybar does not search for an icon of some size if it already tried to.
Fixes #3789.
|
|
This fixes a crash caused by callbacks not matching the right sender,
and frees old values later, before they are re-assigned.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
There is a couple of leftover header files/declarations, which were
fronting implementations that are long gone.
Let's get rid of them.
|
|
This fixes compilation failure:
error: call to function 'init_tray' without a real prototype
|
|
If an item doesn't have a well-formed name, it will not be added to the
tray.
|
|
Remove tray code from bar.c and render.c
|
|
This commit implements the StatusNotifierItem protocol, and enables
swaybar to show tray icons. It also uses `xembedsniproxy` in order to
communicate with xembed applications.
The tray is completely optional, and can be disabled on compile time
with the `enable-tray` option. Or on runtime with the bar config option
`tray_output none`.
Overview of changes:
In swaybar very little is changed outside the tray subfolder except
that all events are now polled in `event_loop.c`, this creates no
functional difference.
Six bar configuration options were added, these are detailed in
sway-bar(5)
The tray subfolder is where all protocol implementation takes place and
is organised as follows:
tray/sni_watcher.c:
This file contains the StatusNotifierWatcher. It keeps track of
items and hosts and reports when they come or go.
tray/tray.c
This file contains the StatusNotifierHost. It keeps track of
sway's version of the items and represents the tray itself.
tray/sni.c
This file contains the StatusNotifierItem struct and all
communication with individual items.
tray/icon.c
This file implements the icon theme protocol. It allows for
finding icons by name, rather than by pixmap.
tray/dbus.c
This file allows for asynchronous DBus communication.
See #986 #343
|