diff options
author | frsfnrrg <frsfnrrg@users.noreply.github.com> | 2018-05-31 20:23:19 -0400 |
---|---|---|
committer | frsfnrrg <frsfnrrg@users.noreply.github.com> | 2018-06-01 18:52:36 -0400 |
commit | f2fe93d1718d1eacccb27fffa58d4cfecd20edfc (patch) | |
tree | fc019b93e4329937ec6912c0bd41873462a70fdb | |
parent | Fix binding bindcode flag initialization (diff) | |
download | sway-f2fe93d1718d1eacccb27fffa58d4cfecd20edfc.tar.gz sway-f2fe93d1718d1eacccb27fffa58d4cfecd20edfc.tar.zst sway-f2fe93d1718d1eacccb27fffa58d4cfecd20edfc.zip |
Remove almost-always redundant loop in key handling
-rw-r--r-- | sway/input/keyboard.c | 48 |
1 files changed, 22 insertions, 26 deletions
diff --git a/sway/input/keyboard.c b/sway/input/keyboard.c index e59d9c03..c0f637f0 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) { | |||
229 | } | 229 | } |
230 | 230 | ||
231 | // identify which binding should be executed. | 231 | // identify which binding should be executed. |
232 | struct sway_binding *binding = | 232 | struct sway_binding *binding = check_shortcut_model( |
233 | check_shortcut_model(&keyboard->state_keycodes, | 233 | &keyboard->state_keycodes, |
234 | config->current_mode->keycode_bindings, | 234 | config->current_mode->keycode_bindings, |
235 | code_modifiers, input_inhibited); | 235 | code_modifiers, input_inhibited); |
236 | for (size_t i=0;i<translated_keysyms_len;i++) { | 236 | struct sway_binding *translated_binding = check_shortcut_model( |
237 | struct sway_binding *translated_binding = | 237 | &keyboard->state_keysyms_translated, |
238 | check_shortcut_model(&keyboard->state_keysyms_translated, | 238 | config->current_mode->keysym_bindings, |
239 | config->current_mode->keysym_bindings, | 239 | translated_modifiers, input_inhibited); |
240 | translated_modifiers, input_inhibited); | 240 | if (translated_binding && !binding) { |
241 | if (translated_binding && !binding) { | 241 | binding = translated_binding; |
242 | binding = translated_binding; | 242 | } else if (binding && translated_binding && binding != translated_binding) { |
243 | } else if (binding && translated_binding && binding != translated_binding) { | 243 | wlr_log(L_DEBUG, "encountered duplicate bindings %d and %d", |
244 | wlr_log(L_DEBUG, "encountered duplicate bindings %d and %d", | 244 | binding->order, translated_binding->order); |
245 | binding->order, translated_binding->order); | ||
246 | } | ||
247 | } | 245 | } |
248 | for (size_t i=0;i<raw_keysyms_len;i++) { | 246 | struct sway_binding *raw_binding = check_shortcut_model( |
249 | struct sway_binding *raw_binding = | 247 | &keyboard->state_keysyms_raw, |
250 | check_shortcut_model(&keyboard->state_keysyms_raw, | 248 | config->current_mode->keysym_bindings, |
251 | config->current_mode->keysym_bindings, | 249 | raw_modifiers, input_inhibited); |
252 | raw_modifiers, input_inhibited); | 250 | if (raw_binding && !binding) { |
253 | if (raw_binding && !binding) { | 251 | binding = raw_binding; |
254 | binding = raw_binding; | 252 | } else if (binding && raw_binding && binding != raw_binding) { |
255 | } else if (binding && raw_binding && binding != raw_binding) { | 253 | wlr_log(L_DEBUG, "encountered duplicate bindings %d and %d", |
256 | wlr_log(L_DEBUG, "encountered duplicate bindings %d and %d", | 254 | binding->order, raw_binding->order); |
257 | binding->order, raw_binding->order); | ||
258 | } | ||
259 | } | 255 | } |
260 | 256 | ||
261 | bool handled = false; | 257 | bool handled = false; |