mirror of
				https://github.com/swaywm/sway.git
				synced 2025-11-03 09:01:43 -05:00 
			
		
		
		
	Remove almost-always redundant loop in key handling
This commit is contained in:
		
							parent
							
								
									705230a26c
								
							
						
					
					
						commit
						f2fe93d171
					
				
					 1 changed files with 22 additions and 26 deletions
				
			
		| 
						 | 
				
			
			@ -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;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue