aboutsummaryrefslogtreecommitdiffstats
path: root/swaybar/tray/item.c
diff options
context:
space:
mode:
Diffstat (limited to 'swaybar/tray/item.c')
-rw-r--r--swaybar/tray/item.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/swaybar/tray/item.c b/swaybar/tray/item.c
index 0cb5ee9d..1f18b8bb 100644
--- a/swaybar/tray/item.c
+++ b/swaybar/tray/item.c
@@ -385,13 +385,18 @@ static int cmp_sni_id(const void *item, const void *cmp_to) {
385 385
386static enum hotspot_event_handling icon_hotspot_callback( 386static enum hotspot_event_handling icon_hotspot_callback(
387 struct swaybar_output *output, struct swaybar_hotspot *hotspot, 387 struct swaybar_output *output, struct swaybar_hotspot *hotspot,
388 double x, double y, uint32_t button, void *data) { 388 double x, double y, uint32_t button, bool released, void *data) {
389 sway_log(SWAY_DEBUG, "Clicked on %s", (char *)data); 389 sway_log(SWAY_DEBUG, "Clicked on %s", (char *)data);
390 390
391 struct swaybar_tray *tray = output->bar->tray; 391 struct swaybar_tray *tray = output->bar->tray;
392 int idx = list_seq_find(tray->items, cmp_sni_id, data); 392 int idx = list_seq_find(tray->items, cmp_sni_id, data);
393 393
394 if (idx != -1) { 394 if (idx != -1) {
395 if (released) {
396 // Since we handle the pressed event, also handle the released event
397 // to block it from falling through to a binding in the bar
398 return HOTSPOT_IGNORE;
399 }
395 struct swaybar_sni *sni = tray->items->items[idx]; 400 struct swaybar_sni *sni = tray->items->items[idx];
396 // guess global position since wayland doesn't expose it 401 // guess global position since wayland doesn't expose it
397 struct swaybar_config *config = tray->bar->config; 402 struct swaybar_config *config = tray->bar->config;