aboutsummaryrefslogtreecommitdiff
path: root/swaybar/tray
AgeCommit message (Collapse)AuthorLines
2020-03-30tray: track SNI callbacksIan Fan-28/+37
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.
2020-03-30tray: tidy codeIan Fan-20/+10
This includes some refactoring and fixing a small memory leak.
2020-03-30tray: allow themes to inherit from multiple themesIan Fan-4/+9
2020-03-30tray: better errors when parsing index.themeIan Fan-60/+90
2020-02-10swaybar: fix i3bar relative coordinates when scaling is usedHristo Venev-1/+1
24e8ba048aef4751c6fa1d5982ee634f921e6cf6 did not take scaling into account. The hotspot size used pixel coordinates, the absolute coordinates were logical, and the relative coordinates were completely wrong. This commit makes all coordinates use logical values. If `"float_event_coords":true` is sent in the handshake message, coordinates are sent as floating-point values. The "scale" field is an integer containing the scale value.
2020-02-10Avoid calling strcmp on nullptrTill Hofmann-1/+4
The function group_handler may get a nullptr as `new_group`. If that's the case, return true, as if `new_group` was the empty string. Also make the conversion to bool explicit when calling `strcmp`.
2019-11-23Amend typosJason-1/+1
2019-10-23swaybar: fix typo in the loop over pixmapsKonstantin Pospelov-1/+1
Fixes #4665.
2019-10-21swaybar: do not retry search for tray iconsKonstantin Pospelov-52/+61
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-1/+7
find_icon() will search in theme appropriate subdirs.
2019-08-12Fix memory leaksAntonin Décimo-0/+1
2019-04-20Validate icon_struct in read_theme_fileMaxime “pep” Buquet-2/+6
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-0/+3
2019-03-13swaybar: fix loading of malformed icon themeStephan Hilb-0/+4
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-3/+3
`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-9/+38
The only use of `join_list` in swaybar/tray/icon.c has been rewritten.
2019-02-28tray: fix pixmap colorsIan Fan-1/+7
by converting from network byte order to host byte order
2019-02-16tray: fix memory leaksIan Fan-3/+7
2019-02-16tray: when a service is lost, remove all matching itemsIan Fan-13/+14
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-3/+3
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-1/+1
2019-01-23Merge pull request #3500 from progandy/validate_pixmapsDrew DeVault-7/+18
swaybar: fix crash with some tray icon pixmaps
2019-01-23Fix tray icon updatesLukas Lihotzki-0/+3
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-7/+18
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-1/+1
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-2/+2
2019-01-21Replace wlr_log with sway_logM Stoeckl-54/+54
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-1/+8
2019-01-16bar_cmd_tray_bind: Use mouse button helpersBrian Ashworth-4/+11
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-2/+6
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-30/+31
2019-01-08swaybar: handle SNI signals betterIan Fan-33/+61
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-3/+3
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-0/+5
2018-12-31swaybar: handle new and lost StatusNotifierWatcherIan Fan-1/+60
2018-12-31swaybar: draw a sad face if SNI has no iconIan Fan-9/+25
2018-12-31swaybar: set bar dirty on SNI eventIan Fan-0/+15
2018-12-31swaybar: implement mouse events for trayIan Fan-0/+89
2018-12-31swaybar: implement tray renderingIan Fan-1/+108
2018-12-31swaybar: add StatusNotifierItem to trayIan Fan-5/+243
2018-12-31swaybar: add StatusNotifierHost to trayIan Fan-0/+190
2018-12-31swaybar: implement icon themes and lookup for trayIan Fan-0/+466
2018-12-31swaybar: add StatusNotifierWatcher to trayIan Fan-0/+219
2018-12-31swaybar: add skeleton dbus code to trayIan Fan-1/+30
2018-12-31swaybar: add tray interfaceIan Fan-0/+21
2018-03-29Start port of swaybar to layer shellDrew DeVault-1973/+0
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-1/+1
Fixes #1307
2017-07-16Fix memory leaks in swaybar trayCalvin Lee-1/+8
2017-07-13Fix name validation in sni_watcher.cCalvin Lee-2/+12
This commit also fixes a memory leak that occurs on failure.
2017-07-13Don't trust SNI names, fixes #1274Calvin Lee-5/+15
If an item doesn't have a well-formed name, it will not be added to the tray.