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 | Merge pull request #3343 from RedSoxFan/seat-cursor-buttons-improved (diff) | |
parent | bar_cmd_bind: utilize mouse button helpers (diff) | |
download | sway-81bb6752748436788418c2fa3e7bef775c42c262.tar.gz sway-81bb6752748436788418c2fa3e7bef775c42c262.tar.zst sway-81bb6752748436788418c2fa3e7bef775c42c262.zip |
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) { | |||
259 | } | 259 | } |
260 | } | 260 | } |
261 | 261 | ||
262 | static uint32_t event_to_x11_button(uint32_t event) { | ||
263 | switch (event) { | ||
264 | case BTN_LEFT: | ||
265 | return 1; | ||
266 | case BTN_MIDDLE: | ||
267 | return 2; | ||
268 | case BTN_RIGHT: | ||
269 | return 3; | ||
270 | case SWAY_SCROLL_UP: | ||
271 | return 4; | ||
272 | case SWAY_SCROLL_DOWN: | ||
273 | return 5; | ||
274 | case SWAY_SCROLL_LEFT: | ||
275 | return 6; | ||
276 | case SWAY_SCROLL_RIGHT: | ||
277 | return 7; | ||
278 | case BTN_SIDE: | ||
279 | return 8; | ||
280 | case BTN_EXTRA: | ||
281 | return 9; | ||
282 | default: | ||
283 | return 0; | ||
284 | } | ||
285 | } | ||
286 | |||
262 | enum hotspot_event_handling i3bar_block_send_click(struct status_line *status, | 287 | enum hotspot_event_handling i3bar_block_send_click(struct status_line *status, |
263 | struct i3bar_block *block, int x, int y, int rx, int ry, int w, int h, | 288 | struct i3bar_block *block, int x, int y, int rx, int ry, int w, int h, |
264 | enum x11_button button) { | 289 | uint32_t button) { |
265 | wlr_log(WLR_DEBUG, "block %s clicked", block->name); | 290 | wlr_log(WLR_DEBUG, "block %s clicked", block->name); |
266 | if (!block->name || !status->click_events) { | 291 | if (!block->name || !status->click_events) { |
267 | return HOTSPOT_PROCESS; | 292 | return HOTSPOT_PROCESS; |
@@ -275,7 +300,9 @@ enum hotspot_event_handling i3bar_block_send_click(struct status_line *status, | |||
275 | json_object_new_string(block->instance)); | 300 | json_object_new_string(block->instance)); |
276 | } | 301 | } |
277 | 302 | ||
278 | json_object_object_add(event_json, "button", json_object_new_int(button)); | 303 | json_object_object_add(event_json, "button", |
304 | json_object_new_int(event_to_x11_button(button))); | ||
305 | json_object_object_add(event_json, "event", json_object_new_int(button)); | ||
279 | json_object_object_add(event_json, "x", json_object_new_int(x)); | 306 | json_object_object_add(event_json, "x", json_object_new_int(x)); |
280 | json_object_object_add(event_json, "y", json_object_new_int(y)); | 307 | json_object_object_add(event_json, "y", json_object_new_int(y)); |
281 | json_object_object_add(event_json, "relative_x", json_object_new_int(rx)); | 308 | json_object_object_add(event_json, "relative_x", json_object_new_int(rx)); |