From f2fe93d1718d1eacccb27fffa58d4cfecd20edfc Mon Sep 17 00:00:00 2001 From: frsfnrrg Date: Thu, 31 May 2018 20:23:19 -0400 Subject: [PATCH] Remove almost-always redundant loop in key handling --- sway/input/keyboard.c | 48 ++++++++++++++++++++----------------------- 1 file changed, 22 insertions(+), 26 deletions(-) diff --git a/sway/input/keyboard.c b/sway/input/keyboard.c index e59d9c03b..c0f637f03 100644 --- a/sway/input/keyboard.c +++ b/sway/input/keyboard.c @@ -229,33 +229,29 @@ static void handle_keyboard_key(struct wl_listener *listener, void *data) { } // identify which binding should be executed. - struct sway_binding *binding = - check_shortcut_model(&keyboard->state_keycodes, - config->current_mode->keycode_bindings, - code_modifiers, input_inhibited); - for (size_t i=0;istate_keysyms_translated, - config->current_mode->keysym_bindings, - translated_modifiers, input_inhibited); - if (translated_binding && !binding) { - binding = translated_binding; - } else if (binding && translated_binding && binding != translated_binding) { - wlr_log(L_DEBUG, "encountered duplicate bindings %d and %d", - binding->order, translated_binding->order); - } + struct sway_binding *binding = check_shortcut_model( + &keyboard->state_keycodes, + config->current_mode->keycode_bindings, + code_modifiers, input_inhibited); + struct sway_binding *translated_binding = check_shortcut_model( + &keyboard->state_keysyms_translated, + config->current_mode->keysym_bindings, + translated_modifiers, input_inhibited); + if (translated_binding && !binding) { + binding = translated_binding; + } else if (binding && translated_binding && binding != translated_binding) { + wlr_log(L_DEBUG, "encountered duplicate bindings %d and %d", + binding->order, translated_binding->order); } - for (size_t i=0;istate_keysyms_raw, - config->current_mode->keysym_bindings, - raw_modifiers, input_inhibited); - if (raw_binding && !binding) { - binding = raw_binding; - } else if (binding && raw_binding && binding != raw_binding) { - wlr_log(L_DEBUG, "encountered duplicate bindings %d and %d", - binding->order, raw_binding->order); - } + struct sway_binding *raw_binding = check_shortcut_model( + &keyboard->state_keysyms_raw, + config->current_mode->keysym_bindings, + raw_modifiers, input_inhibited); + if (raw_binding && !binding) { + binding = raw_binding; + } else if (binding && raw_binding && binding != raw_binding) { + wlr_log(L_DEBUG, "encountered duplicate bindings %d and %d", + binding->order, raw_binding->order); } bool handled = false;