aboutsummaryrefslogtreecommitdiff
path: root/swaybar/tray
AgeCommit message (Collapse)Author
2019-10-23swaybar: fix typo in the loop over pixmapsKonstantin Pospelov
Fixes #4665.
2019-10-21swaybar: do not retry search for tray iconsKonstantin Pospelov
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.
2019-09-04Add icon_theme_path to find_icon() search if setBen Brown
find_icon() will search in theme appropriate subdirs.
2019-08-12Fix memory leaksAntonin Décimo
2019-04-20Validate icon_struct in read_theme_fileMaxime “pep” Buquet
The read_theme_file function used to return an invalid icon_struct in some cases, for example when an empty index.theme file was read. This makes sure the struct we're returning is always valid as per the Icon Theme specification. Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-03-30Fix a crash in swaybar when an icon dir is not readableAlex Maese
2019-03-13swaybar: fix loading of malformed icon themeStephan Hilb
If the icon index.theme contained a key-value pair without a preceding group header, entry_handler() would be called with a zero pointer and lead to a segfault. Set the error flag and break on such malformed files.
2019-03-11Fix size_t temporary underflow in log_loaded_themesemersion
`len` will underflow but will overflow right after, so it's not as bad as it may appear. Still better not to under/overflow at all. Fixes https://github.com/swaywm/sway/issues/3862
2019-03-11stringop.c: remove unused functionsIan Fan
The only use of `join_list` in swaybar/tray/icon.c has been rewritten.
2019-02-28tray: fix pixmap colorsIan Fan
by converting from network byte order to host byte order
2019-02-16tray: fix memory leaksIan Fan
2019-02-16tray: when a service is lost, remove all matching itemsIan Fan
Before, only the first matching item would be removed, which could leave stale items.
2019-02-15tray: use correct parameter to set bus slot to floatingIan Fan
Counter-intuitively, `sd_bus_slot_set_floating` expects 0 to set it to floating.
2019-02-01Fix #3445: swaybar tray inerited thems not processedStefan Schick
2019-01-23Merge pull request #3500 from progandy/validate_pixmapsDrew DeVault
swaybar: fix crash with some tray icon pixmaps
2019-01-23Fix tray icon updatesLukas Lihotzki
Apparently, IconThemePath needs to be reread on NewIcon signal. This fixes tray icon updates in electron apps with libappindicator-gtk3.
2019-01-23swaybar: fix crash with some tray icon pixmapsprogandy
Discard pixmaps for icons where width and height are 0 or not equal. Fixes #3487
2019-01-22Fix dead stores found by scan-buildM Stoeckl
In addition to removing unused code, two minor problems are fixed: (1) `resize set` and `resize adjust` did not error when given too many arguments. (2) `orientation` was incorrectly overridden to be 'U' for scroll events in the swaybar tray `handle_click` function.
2019-01-21swaybar: fix setting floating watcher slotsIan Fan
2019-01-21Replace wlr_log with sway_logM Stoeckl
This commit mostly duplicates the wlr_log functions, although with a sway_* prefix. (This is very similar to PR #2009.) However, the logging function no longer needs to be replaceable, so sway_log_init's second argument is used to set the exit callback for sway_abort. wlr_log_init is still invoked in sway/main.c This commit makes it easier to remove the wlroots dependency for the helper programs swaymsg, swaybg, swaybar, and swaynag.
2019-01-19Fix memory leaks in swaybarM Stoeckl
2019-01-16bar_cmd_tray_bind: Use mouse button helpersBrian Ashworth
This modifies `bar_cmd_tray_bindsym` to use `get_mouse_bindsym` for parsing mouse buttons. This also introduces `bar_cmd_tray_bindcode`, which will use `get_mouse_bindcode` for parsing mouse buttons. Like with sway bindings, the two commands are encapsulated in a single file to maximize shared code. This also modifies tray bindings to work off of events codes rather than x11 buttons, which allows for any mouse buttons to be used. For `get_bar_config`, `event_code` has been added to the `tray_bindings` section and will include to event code for the button. If the event code can be mapped to a x11 button, `input_code` will still be the x11 button number. Otherwise, `input_code` will be `0`.
2019-01-13swaybar: allow identifiers for output and trayBrian Ashworth
This allows `bar output` and `bar tray_output` to specify an output identifier. Output names should still work as well. This parses the output identifier from the xdg_output description, which wlroots currently sets to `make model serial (name)`. Since this could change in the future, all identifier comparisons are guarded by NULL-checks in case the description cannot be parsed to an identifier.
2019-01-08swaybar: improve tray loggingIan Fan
2019-01-08swaybar: handle SNI signals betterIan Fan
This fixes a crash caused by callbacks not matching the right sender, and frees old values later, before they are re-assigned.
2019-01-08swaybar: free the right item during tray destructionIan Fan
Also added a comment to make more obvious the reason for comparing sni->status[0] == 'N'
2018-12-31swaybar: use KDE's SNI IconThemePath propertyIan Fan
2018-12-31swaybar: handle new and lost StatusNotifierWatcherIan Fan
2018-12-31swaybar: draw a sad face if SNI has no iconIan Fan
2018-12-31swaybar: set bar dirty on SNI eventIan Fan
2018-12-31swaybar: implement mouse events for trayIan Fan
2018-12-31swaybar: implement tray renderingIan Fan
2018-12-31swaybar: add StatusNotifierItem to trayIan Fan
2018-12-31swaybar: add StatusNotifierHost to trayIan Fan
2018-12-31swaybar: implement icon themes and lookup for trayIan Fan
2018-12-31swaybar: add StatusNotifierWatcher to trayIan Fan
2018-12-31swaybar: add skeleton dbus code to trayIan Fan
2018-12-31swaybar: add tray interfaceIan Fan
2018-03-29Start port of swaybar to layer shellDrew DeVault
This starts up the event loop and wayland display and shims out the basic top level rendering concepts. Also includes some changes to incorporate pango into the 1.x codebase properly.
2017-08-12Prevent crash if DBus connection is NULLCalvin Lee
Fixes #1307
2017-07-16Fix memory leaks in swaybar trayCalvin Lee
2017-07-13Fix name validation in sni_watcher.cCalvin Lee
This commit also fixes a memory leak that occurs on failure.
2017-07-13Don't trust SNI names, fixes #1274Calvin Lee
If an item doesn't have a well-formed name, it will not be added to the tray.
2017-07-08Adjust _XOPEN_SOURCE value for build on FreeBSD and fix pointer comparison ↵Johannes Lundberg
error.
2017-06-26Fix #1252Drew DeVault
2017-06-23Handle getline failure in icon theme parsingMykyta Holubakha
2017-06-13Remove Xembed SupportCalvin Lee
Xembed support is premature in sway and should be postponed. This commit only removes swaybar starting xembedsniproxy, if users would like, they can still start xembedsniproxy manually, however there will be no official support.
2017-06-08Fix Catching NewIcon SignalCalvin Lee
The unique name was not copied out of the wire marshalled DBus message data so `sni_uniq_cmp` would always match against junk data.
2017-06-07Reorganize Tray CodeCalvin Lee
Remove tray code from bar.c and render.c
2017-06-07Implement Tray IconsCalvin Lee
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