aboutsummaryrefslogtreecommitdiffstats
path: root/sway/input/keyboard.c
diff options
context:
space:
mode:
authorLibravatar Tony Crisci <tony@dubstepdish.com>2017-12-28 18:50:22 -0500
committerLibravatar Tony Crisci <tony@dubstepdish.com>2017-12-28 18:50:22 -0500
commit62b7ab3959468124086a1ba95361b3eed069b4a7 (patch)
tree5569e29c86c9a38d6ca33be14615879566c845c7 /sway/input/keyboard.c
parentfix keyboard_execute_bindcode (diff)
downloadsway-62b7ab3959468124086a1ba95361b3eed069b4a7.tar.gz
sway-62b7ab3959468124086a1ba95361b3eed069b4a7.tar.zst
sway-62b7ab3959468124086a1ba95361b3eed069b4a7.zip
overwrite old bindings
Diffstat (limited to 'sway/input/keyboard.c')
-rw-r--r--sway/input/keyboard.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/sway/input/keyboard.c b/sway/input/keyboard.c
index eacb6ceb..6272dcce 100644
--- a/sway/input/keyboard.c
+++ b/sway/input/keyboard.c
@@ -67,7 +67,9 @@ static bool keyboard_execute_bindsym(struct sway_keyboard *keyboard,
67 list_t *keysym_bindings = config->current_mode->keysym_bindings; 67 list_t *keysym_bindings = config->current_mode->keysym_bindings;
68 for (int i = 0; i < keysym_bindings->length; ++i) { 68 for (int i = 0; i < keysym_bindings->length; ++i) {
69 struct sway_binding *binding = keysym_bindings->items[i]; 69 struct sway_binding *binding = keysym_bindings->items[i];
70 sway_log(L_DEBUG, "@@ checking binding: %s", binding->command);
70 if (modifiers ^ binding->modifiers || n != binding->keys->length) { 71 if (modifiers ^ binding->modifiers || n != binding->keys->length) {
72 sway_log(L_DEBUG, "@@ modifiers or key num dont match");
71 continue; 73 continue;
72 } 74 }
73 75
@@ -286,17 +288,18 @@ static void handle_keyboard_key(struct wl_listener *listener, void *data) {
286 288
287 xkb_keycode_t keycode = event->keycode + 8; 289 xkb_keycode_t keycode = event->keycode + 8;
288 bool handled = false; 290 bool handled = false;
289 const xkb_keysym_t *keysyms;
290 291
291 // handle keycodes 292 // handle keycodes
292 handled = keyboard_execute_bindcode(keyboard); 293 handled = keyboard_execute_bindcode(keyboard);
294 sway_log(L_DEBUG, "@@ handled by bindcode? %d", handled);
293 295
294 // handle translated keysyms 296 // handle translated keysyms
297 const xkb_keysym_t *translated_keysyms;
295 uint32_t translated_modifiers; 298 uint32_t translated_modifiers;
296 size_t translated_keysyms_len = 299 size_t translated_keysyms_len =
297 keyboard_keysyms_translated(keyboard, keycode, &keysyms, 300 keyboard_keysyms_translated(keyboard, keycode, &translated_keysyms,
298 &translated_modifiers); 301 &translated_modifiers);
299 pressed_keysyms_update(keyboard->pressed_keysyms_translated, keysyms, 302 pressed_keysyms_update(keyboard->pressed_keysyms_translated, translated_keysyms,
300 translated_keysyms_len, event->state); 303 translated_keysyms_len, event->state);
301 if (event->state == WLR_KEY_PRESSED && !handled) { 304 if (event->state == WLR_KEY_PRESSED && !handled) {
302 handled = keyboard_execute_bindsym(keyboard, 305 handled = keyboard_execute_bindsym(keyboard,
@@ -305,9 +308,10 @@ static void handle_keyboard_key(struct wl_listener *listener, void *data) {
305 } 308 }
306 309
307 // Handle raw keysyms 310 // Handle raw keysyms
311 const xkb_keysym_t *raw_keysyms;
308 uint32_t raw_modifiers; 312 uint32_t raw_modifiers;
309 size_t raw_keysyms_len = keyboard_keysyms_raw(keyboard, keycode, &keysyms, &raw_modifiers); 313 size_t raw_keysyms_len = keyboard_keysyms_raw(keyboard, keycode, &raw_keysyms, &raw_modifiers);
310 pressed_keysyms_update(keyboard->pressed_keysyms_raw, keysyms, raw_keysyms_len, 314 pressed_keysyms_update(keyboard->pressed_keysyms_raw, raw_keysyms, raw_keysyms_len,
311 event->state); 315 event->state);
312 if (event->state == WLR_KEY_PRESSED && !handled) { 316 if (event->state == WLR_KEY_PRESSED && !handled) {
313 handled = keyboard_execute_bindsym(keyboard, 317 handled = keyboard_execute_bindsym(keyboard,