summaryrefslogtreecommitdiffstats
path: root/swaybar/tray/item.c
diff options
context:
space:
mode:
Diffstat (limited to 'swaybar/tray/item.c')
-rw-r--r--swaybar/tray/item.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/swaybar/tray/item.c b/swaybar/tray/item.c
index 0833dcb9..9056331e 100644
--- a/swaybar/tray/item.c
+++ b/swaybar/tray/item.c
@@ -301,8 +301,15 @@ void destroy_sni(struct swaybar_sni *sni) {
301} 301}
302 302
303static void handle_click(struct swaybar_sni *sni, int x, int y, 303static void handle_click(struct swaybar_sni *sni, int x, int y,
304 enum x11_button button, int delta) { 304 uint32_t button, int delta) {
305 const char *method = sni->tray->bar->config->tray_bindings[button]; 305 const char *method = NULL;
306 struct tray_binding *binding = NULL;
307 wl_list_for_each(binding, &sni->tray->bar->config->tray_bindings, link) {
308 if (binding->button == button) {
309 method = binding->command;
310 break;
311 }
312 }
306 if (!method) { 313 if (!method) {
307 static const char *default_bindings[10] = { 314 static const char *default_bindings[10] = {
308 "nop", 315 "nop",
@@ -316,7 +323,7 @@ static void handle_click(struct swaybar_sni *sni, int x, int y,
316 "nop", 323 "nop",
317 "nop" 324 "nop"
318 }; 325 };
319 method = default_bindings[button]; 326 method = default_bindings[event_to_x11_button(button)];
320 } 327 }
321 if (strcmp(method, "nop") == 0) { 328 if (strcmp(method, "nop") == 0) {
322 return; 329 return;
@@ -345,7 +352,7 @@ static int cmp_sni_id(const void *item, const void *cmp_to) {
345 352
346static enum hotspot_event_handling icon_hotspot_callback( 353static enum hotspot_event_handling icon_hotspot_callback(
347 struct swaybar_output *output, struct swaybar_hotspot *hotspot, 354 struct swaybar_output *output, struct swaybar_hotspot *hotspot,
348 int x, int y, enum x11_button button, void *data) { 355 int x, int y, uint32_t button, void *data) {
349 wlr_log(WLR_DEBUG, "Clicked on %s", (char *)data); 356 wlr_log(WLR_DEBUG, "Clicked on %s", (char *)data);
350 357
351 struct swaybar_tray *tray = output->bar->tray; 358 struct swaybar_tray *tray = output->bar->tray;