aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sway/input/keyboard.c32
1 files changed, 16 insertions, 16 deletions
diff --git a/sway/input/keyboard.c b/sway/input/keyboard.c
index 00fc6a13..06ae99c4 100644
--- a/sway/input/keyboard.c
+++ b/sway/input/keyboard.c
@@ -292,32 +292,32 @@ static void handle_keyboard_key(struct wl_listener *listener, void *data) {
292 // Identify new keycode, raw keysym(s), and translated keysym(s) 292 // Identify new keycode, raw keysym(s), and translated keysym(s)
293 xkb_keycode_t keycode = event->keycode + 8; 293 xkb_keycode_t keycode = event->keycode + 8;
294 294
295 const xkb_keysym_t *raw_keysyms;
296 uint32_t raw_modifiers;
297 size_t raw_keysyms_len =
298 keyboard_keysyms_raw(keyboard, keycode, &raw_keysyms, &raw_modifiers);
299
295 const xkb_keysym_t *translated_keysyms; 300 const xkb_keysym_t *translated_keysyms;
296 uint32_t translated_modifiers; 301 uint32_t translated_modifiers;
297 size_t translated_keysyms_len = 302 size_t translated_keysyms_len =
298 keyboard_keysyms_translated(keyboard, keycode, &translated_keysyms, 303 keyboard_keysyms_translated(keyboard, keycode, &translated_keysyms,
299 &translated_modifiers); 304 &translated_modifiers);
300 305
301 const xkb_keysym_t *raw_keysyms;
302 uint32_t raw_modifiers;
303 size_t raw_keysyms_len =
304 keyboard_keysyms_raw(keyboard, keycode, &raw_keysyms, &raw_modifiers);
305
306 uint32_t code_modifiers = wlr_keyboard_get_modifiers(wlr_device->keyboard); 306 uint32_t code_modifiers = wlr_keyboard_get_modifiers(wlr_device->keyboard);
307 307
308 // Update shortcut model state 308 // Update shortcut model state
309 update_shortcut_state(&keyboard->state_keycodes, event, 309 update_shortcut_state(&keyboard->state_keycodes, event,
310 (uint32_t)keycode, code_modifiers); 310 (uint32_t)keycode, code_modifiers);
311 for (size_t i = 0; i < translated_keysyms_len; ++i) {
312 update_shortcut_state(&keyboard->state_keysyms_translated,
313 event, (uint32_t)translated_keysyms[i],
314 code_modifiers);
315 }
316 for (size_t i = 0; i < raw_keysyms_len; ++i) { 311 for (size_t i = 0; i < raw_keysyms_len; ++i) {
317 update_shortcut_state(&keyboard->state_keysyms_raw, 312 update_shortcut_state(&keyboard->state_keysyms_raw,
318 event, (uint32_t)raw_keysyms[i], 313 event, (uint32_t)raw_keysyms[i],
319 code_modifiers); 314 code_modifiers);
320 } 315 }
316 for (size_t i = 0; i < translated_keysyms_len; ++i) {
317 update_shortcut_state(&keyboard->state_keysyms_translated,
318 event, (uint32_t)translated_keysyms[i],
319 code_modifiers);
320 }
321 321
322 bool handled = false; 322 bool handled = false;
323 323
@@ -326,12 +326,12 @@ static void handle_keyboard_key(struct wl_listener *listener, void *data) {
326 get_active_binding(&keyboard->state_keycodes, 326 get_active_binding(&keyboard->state_keycodes,
327 config->current_mode->keycode_bindings, &binding_released, 327 config->current_mode->keycode_bindings, &binding_released,
328 code_modifiers, true, input_inhibited, device_identifier); 328 code_modifiers, true, input_inhibited, device_identifier);
329 get_active_binding(&keyboard->state_keysyms_translated,
330 config->current_mode->keysym_bindings, &binding_released,
331 translated_modifiers, true, input_inhibited, device_identifier);
332 get_active_binding(&keyboard->state_keysyms_raw, 329 get_active_binding(&keyboard->state_keysyms_raw,
333 config->current_mode->keysym_bindings, &binding_released, 330 config->current_mode->keysym_bindings, &binding_released,
334 raw_modifiers, true, input_inhibited, device_identifier); 331 raw_modifiers, true, input_inhibited, device_identifier);
332 get_active_binding(&keyboard->state_keysyms_translated,
333 config->current_mode->keysym_bindings, &binding_released,
334 translated_modifiers, true, input_inhibited, device_identifier);
335 335
336 // Execute stored release binding once no longer active 336 // Execute stored release binding once no longer active
337 if (keyboard->held_binding && binding_released != keyboard->held_binding && 337 if (keyboard->held_binding && binding_released != keyboard->held_binding &&
@@ -352,13 +352,13 @@ static void handle_keyboard_key(struct wl_listener *listener, void *data) {
352 get_active_binding(&keyboard->state_keycodes, 352 get_active_binding(&keyboard->state_keycodes,
353 config->current_mode->keycode_bindings, &binding, 353 config->current_mode->keycode_bindings, &binding,
354 code_modifiers, false, input_inhibited, device_identifier); 354 code_modifiers, false, input_inhibited, device_identifier);
355 get_active_binding(&keyboard->state_keysyms_raw,
356 config->current_mode->keysym_bindings, &binding,
357 raw_modifiers, false, input_inhibited, device_identifier);
355 get_active_binding(&keyboard->state_keysyms_translated, 358 get_active_binding(&keyboard->state_keysyms_translated,
356 config->current_mode->keysym_bindings, &binding, 359 config->current_mode->keysym_bindings, &binding,
357 translated_modifiers, false, input_inhibited, 360 translated_modifiers, false, input_inhibited,
358 device_identifier); 361 device_identifier);
359 get_active_binding(&keyboard->state_keysyms_raw,
360 config->current_mode->keysym_bindings, &binding,
361 raw_modifiers, false, input_inhibited, device_identifier);
362 } 362 }
363 363
364 // Set up (or clear) keyboard repeat for a pressed binding. Since the 364 // Set up (or clear) keyboard repeat for a pressed binding. Since the