diff options
author | Mikkel Oscar Lyderik <mikkeloscar@gmail.com> | 2016-01-09 20:31:18 +0100 |
---|---|---|
committer | Mikkel Oscar Lyderik <mikkeloscar@gmail.com> | 2016-01-09 20:31:18 +0100 |
commit | e3ddcaabc48e16dea26e4b96adae4c0bc7ef6203 (patch) | |
tree | ae0c7a352a0c49630fd18014820d3066de594524 | |
parent | Make enable-binding-event option have an affect. (diff) | |
download | sway-e3ddcaabc48e16dea26e4b96adae4c0bc7ef6203.tar.gz sway-e3ddcaabc48e16dea26e4b96adae4c0bc7ef6203.tar.zst sway-e3ddcaabc48e16dea26e4b96adae4c0bc7ef6203.zip |
Add bindcode to binding events.
-rw-r--r-- | sway/ipc-server.c | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/sway/ipc-server.c b/sway/ipc-server.c index bde20931..aea45851 100644 --- a/sway/ipc-server.c +++ b/sway/ipc-server.c | |||
@@ -667,19 +667,27 @@ void ipc_event_binding_keyboard(struct sway_binding *sb) { | |||
667 | 667 | ||
668 | json_object_object_add(sb_obj, "event_state_mask", modifiers); | 668 | json_object_object_add(sb_obj, "event_state_mask", modifiers); |
669 | 669 | ||
670 | // TODO: implement bindcode | 670 | json_object *input_codes = json_object_new_array(); |
671 | json_object_object_add(sb_obj, "input_code", json_object_new_int(0)); | ||
672 | |||
673 | json_object *symbols = json_object_new_array(); | 671 | json_object *symbols = json_object_new_array(); |
674 | uint32_t keysym; | 672 | |
675 | char buffer[64]; | 673 | if (sb->bindcode) { // bindcode: populate input_codes |
676 | for (i = 0; i < sb->keys->length; ++i) { | 674 | uint32_t keycode; |
677 | keysym = *(uint32_t *)sb->keys->items[i]; | 675 | for (i = 0; i < sb->keys->length; ++i) { |
678 | if (xkb_keysym_get_name(keysym, buffer, 64) > 0) { | 676 | keycode = *(uint32_t *)sb->keys->items[i]; |
679 | json_object_array_add(symbols, json_object_new_string(buffer)); | 677 | json_object_array_add(input_codes, json_object_new_int(keycode)); |
678 | } | ||
679 | } else { // bindsym: populate symbols | ||
680 | uint32_t keysym; | ||
681 | char buffer[64]; | ||
682 | for (i = 0; i < sb->keys->length; ++i) { | ||
683 | keysym = *(uint32_t *)sb->keys->items[i]; | ||
684 | if (xkb_keysym_get_name(keysym, buffer, 64) > 0) { | ||
685 | json_object_array_add(symbols, json_object_new_string(buffer)); | ||
686 | } | ||
680 | } | 687 | } |
681 | } | 688 | } |
682 | 689 | ||
690 | json_object_object_add(sb_obj, "input_codes", input_codes); | ||
683 | json_object_object_add(sb_obj, "symbols", symbols); | 691 | json_object_object_add(sb_obj, "symbols", symbols); |
684 | json_object_object_add(sb_obj, "input_type", json_object_new_string("keyboard")); | 692 | json_object_object_add(sb_obj, "input_type", json_object_new_string("keyboard")); |
685 | 693 | ||