summaryrefslogtreecommitdiffstats
path: root/sway/ipc-server.c
diff options
context:
space:
mode:
authorLibravatar Mikkel Oscar Lyderik <mikkeloscar@gmail.com>2016-01-09 20:31:18 +0100
committerLibravatar Mikkel Oscar Lyderik <mikkeloscar@gmail.com>2016-01-09 20:31:18 +0100
commite3ddcaabc48e16dea26e4b96adae4c0bc7ef6203 (patch)
treeae0c7a352a0c49630fd18014820d3066de594524 /sway/ipc-server.c
parentMake enable-binding-event option have an affect. (diff)
downloadsway-e3ddcaabc48e16dea26e4b96adae4c0bc7ef6203.tar.gz
sway-e3ddcaabc48e16dea26e4b96adae4c0bc7ef6203.tar.zst
sway-e3ddcaabc48e16dea26e4b96adae4c0bc7ef6203.zip
Add bindcode to binding events.
Diffstat (limited to 'sway/ipc-server.c')
-rw-r--r--sway/ipc-server.c26
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