diff options
author | Drew DeVault <sir@cmpwn.com> | 2019-01-13 20:41:05 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-13 20:41:05 -0500 |
commit | 81bb6752748436788418c2fa3e7bef775c42c262 (patch) | |
tree | f90b770d160cf5ca773a3d63d52311f7ba731b16 /swaybar/i3bar.c | |
parent | 9f9ef761753e11235c85c232e7521506cfea512d (diff) | |
parent | 3d6440ec26f2b39c54fd03aa3a3c822a8a2bbc72 (diff) |
Merge pull request #3344 from RedSoxFan/bar-mouse-bindings-improved
Improve mouse button parsing: bar mouse bindings
Diffstat (limited to 'swaybar/i3bar.c')
-rw-r--r-- | swaybar/i3bar.c | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/swaybar/i3bar.c b/swaybar/i3bar.c index 54607a3a..116c8f6e 100644 --- a/swaybar/i3bar.c +++ b/swaybar/i3bar.c @@ -259,9 +259,34 @@ bool i3bar_handle_readable(struct status_line *status) { } } +static uint32_t event_to_x11_button(uint32_t event) { + switch (event) { + case BTN_LEFT: + return 1; + case BTN_MIDDLE: + return 2; + case BTN_RIGHT: + return 3; + case SWAY_SCROLL_UP: + return 4; + case SWAY_SCROLL_DOWN: + return 5; + case SWAY_SCROLL_LEFT: + return 6; + case SWAY_SCROLL_RIGHT: + return 7; + case BTN_SIDE: + return 8; + case BTN_EXTRA: + return 9; + default: + return 0; + } +} + enum hotspot_event_handling i3bar_block_send_click(struct status_line *status, struct i3bar_block *block, int x, int y, int rx, int ry, int w, int h, - enum x11_button button) { + uint32_t button) { wlr_log(WLR_DEBUG, "block %s clicked", block->name); if (!block->name || !status->click_events) { return HOTSPOT_PROCESS; @@ -275,7 +300,9 @@ enum hotspot_event_handling i3bar_block_send_click(struct status_line *status, json_object_new_string(block->instance)); } - json_object_object_add(event_json, "button", json_object_new_int(button)); + json_object_object_add(event_json, "button", + json_object_new_int(event_to_x11_button(button))); + json_object_object_add(event_json, "event", json_object_new_int(button)); json_object_object_add(event_json, "x", json_object_new_int(x)); json_object_object_add(event_json, "y", json_object_new_int(y)); json_object_object_add(event_json, "relative_x", json_object_new_int(rx)); |