diff options
Diffstat (limited to 'sway/ipc-json.c')
-rw-r--r-- | sway/ipc-json.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/sway/ipc-json.c b/sway/ipc-json.c index 53e0e335..61602343 100644 --- a/sway/ipc-json.c +++ b/sway/ipc-json.c | |||
@@ -1,4 +1,5 @@ | |||
1 | #include <json-c/json.h> | 1 | #include <json-c/json.h> |
2 | #include <libevdev/libevdev.h> | ||
2 | #include <stdio.h> | 3 | #include <stdio.h> |
3 | #include <ctype.h> | 4 | #include <ctype.h> |
4 | #include "config.h" | 5 | #include "config.h" |
@@ -10,6 +11,7 @@ | |||
10 | #include "sway/tree/workspace.h" | 11 | #include "sway/tree/workspace.h" |
11 | #include "sway/output.h" | 12 | #include "sway/output.h" |
12 | #include "sway/input/input-manager.h" | 13 | #include "sway/input/input-manager.h" |
14 | #include "sway/input/cursor.h" | ||
13 | #include "sway/input/seat.h" | 15 | #include "sway/input/seat.h" |
14 | #include <wlr/types/wlr_box.h> | 16 | #include <wlr/types/wlr_box.h> |
15 | #include <wlr/types/wlr_output.h> | 17 | #include <wlr/types/wlr_output.h> |
@@ -626,6 +628,31 @@ json_object *ipc_json_describe_seat(struct sway_seat *seat) { | |||
626 | return object; | 628 | return object; |
627 | } | 629 | } |
628 | 630 | ||
631 | static uint32_t event_to_x11_button(uint32_t event) { | ||
632 | switch (event) { | ||
633 | case BTN_LEFT: | ||
634 | return 1; | ||
635 | case BTN_MIDDLE: | ||
636 | return 2; | ||
637 | case BTN_RIGHT: | ||
638 | return 3; | ||
639 | case SWAY_SCROLL_UP: | ||
640 | return 4; | ||
641 | case SWAY_SCROLL_DOWN: | ||
642 | return 5; | ||
643 | case SWAY_SCROLL_LEFT: | ||
644 | return 6; | ||
645 | case SWAY_SCROLL_RIGHT: | ||
646 | return 7; | ||
647 | case BTN_SIDE: | ||
648 | return 8; | ||
649 | case BTN_EXTRA: | ||
650 | return 9; | ||
651 | default: | ||
652 | return 0; | ||
653 | } | ||
654 | } | ||
655 | |||
629 | json_object *ipc_json_describe_bar_config(struct bar_config *bar) { | 656 | json_object *ipc_json_describe_bar_config(struct bar_config *bar) { |
630 | if (!sway_assert(bar, "Bar must not be NULL")) { | 657 | if (!sway_assert(bar, "Bar must not be NULL")) { |
631 | return NULL; | 658 | return NULL; |
@@ -767,6 +794,8 @@ json_object *ipc_json_describe_bar_config(struct bar_config *bar) { | |||
767 | struct bar_binding *binding = bar->bindings->items[i]; | 794 | struct bar_binding *binding = bar->bindings->items[i]; |
768 | json_object *bind = json_object_new_object(); | 795 | json_object *bind = json_object_new_object(); |
769 | json_object_object_add(bind, "input_code", | 796 | json_object_object_add(bind, "input_code", |
797 | json_object_new_int(event_to_x11_button(binding->button))); | ||
798 | json_object_object_add(bind, "event_code", | ||
770 | json_object_new_int(binding->button)); | 799 | json_object_new_int(binding->button)); |
771 | json_object_object_add(bind, "command", | 800 | json_object_object_add(bind, "command", |
772 | json_object_new_string(binding->command)); | 801 | json_object_new_string(binding->command)); |