aboutsummaryrefslogtreecommitdiff
path: root/swaybar/tray/item.c
AgeCommit message (Collapse)AuthorLines
2025-01-07Use has_prefix() instead of strncmp() throughoutSimon Ser-2/+3
This is safer than hardcoded string lengths.
2024-02-23Define _POSIX_C_SOURCE globallySimon Ser-1/+0
See discussion in https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4555
2023-11-23common: move load_image to swaybarManuel Stoeckl-1/+1
swaynag, swaymsg, and sway do not use this function and are unlikely to in the future.
2023-11-23common: rename load_background_image to load_imageManuel Stoeckl-1/+1
2022-11-26swaybar: Make hotspots block bar release bindingsJoan Bruguera-1/+6
The previous commit prioritized hotspots before bar bindings for press events, which matches i3's behaviour. However, since hotspots don't need to do any processing on release events, those were not handled, and simply fell through to `bindsym --release` bar bindings (if any). This is counter-intuitive, and doesn't match i3's behaviour. Instead in case a hotspot handles the press event, it should also handle the release event, doing nothing, but blocking the event from triggering a --release bar binding. E.g., in Sway, without this commit, this config. shows a text on tray clicks: bar { # ... bindsym --release button1 exec swaynag -m I_got_the_release_event. } But the same configuration in i3 (with i3-nagbar) doesn't show the text. Signed-off-by: Joan Bruguera <joanbrugueram@gmail.com>
2022-01-19tray: do not render passive itemsTobias Bengfort-0/+5
https://www.freedesktop.org/wiki/Specifications/StatusNotifierItem/StatusNotifierItem/#org.freedesktop.statusnotifieritem.status
2022-01-07swaybar: fix tray item icon scaling, positioningNathan Schulte-7/+19
2021-05-10cairo: Replace <cairo/cairo.h> by <cairo.h>Issam E. Maghni-1/+1
For full context, read https://gitlab.freedesktop.org/cairo/cairo/-/issues/479 TL;DR, cairo’s pc file adds `/cairo` to CFLAGS. So namespace cairo shouldn’t be used.
2021-03-17swaybar: silence missing IconThemePath messagePi-Yueh Chuang-2/+7
IconThemePath is not a standard property in XDG's StatusNotifierItem specification, so missing this property should not be logged as an error. This patch changes the log level to SWAY_DEBUG when swaybar queries the value of IconThemePath so that swaybar won't log the returned message as an error if IconThemePath does not exist. Closes: https://github.com/swaywm/sway/issues/6092
2020-03-30tray: track SNI callbacksIan Fan-27/+30
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-4/+0
This includes some refactoring and fixing a small memory leak.
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.
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-51/+58
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-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-1/+5
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-21Replace wlr_log with sway_logM Stoeckl-20/+20
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-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-08swaybar: improve tray loggingIan Fan-28/+29
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-2/+2
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: draw a sad face if SNI has no iconIan Fan-9/+25
2018-12-31swaybar: set bar dirty on SNI eventIan Fan-0/+13
2018-12-31swaybar: implement mouse events for trayIan Fan-0/+89
2018-12-31swaybar: implement tray renderingIan Fan-0/+84
2018-12-31swaybar: add StatusNotifierItem to trayIan Fan-0/+236