sway

i3-compatible Wayland compositor
git clone https://git.awy.one/sway
Log | Files | Refs | README | LICENSE

commit f2fe93d1718d1eacccb27fffa58d4cfecd20edfc
parent 705230a26c09c578960b90d1c226680aad0b359d
Author: frsfnrrg <frsfnrrg@users.noreply.github.com>
Date:   Thu, 31 May 2018 20:23:19 -0400

Remove almost-always redundant loop in key handling

Diffstat:
Msway/input/keyboard.c | 48++++++++++++++++++++++--------------------------
1 file changed, 22 insertions(+), 26 deletions(-)

diff --git 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;i<translated_keysyms_len;i++) { - 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); - } + 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;i<raw_keysyms_len;i++) { - 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); - } + 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;