aboutsummaryrefslogtreecommitdiff
path: root/swaybar/i3bar.c
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2019-01-13 20:41:05 -0500
committerGitHub <noreply@github.com>2019-01-13 20:41:05 -0500
commit81bb6752748436788418c2fa3e7bef775c42c262 (patch)
treef90b770d160cf5ca773a3d63d52311f7ba731b16 /swaybar/i3bar.c
parent9f9ef761753e11235c85c232e7521506cfea512d (diff)
parent3d6440ec26f2b39c54fd03aa3a3c822a8a2bbc72 (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.c31
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));