mirror of
				https://github.com/swaywm/sway.git
				synced 2025-11-03 09:01:43 -05:00 
			
		
		
		
	input/keyboard: respect solo repeat_{rate,delay}
If `repeat_rate` or `repeat_delay` is set without the other being set, the default was being used for both. This changes the logic to respect the value given and use the default for the other when only one is set.
This commit is contained in:
		
							parent
							
								
									95e16bb744
								
							
						
					
					
						commit
						062da8eae7
					
				
					 1 changed files with 10 additions and 6 deletions
				
			
		| 
						 | 
					@ -549,13 +549,17 @@ void sway_keyboard_configure(struct sway_keyboard *keyboard) {
 | 
				
			||||||
		wlr_keyboard_led_update(wlr_device->keyboard, leds);
 | 
							wlr_keyboard_led_update(wlr_device->keyboard, leds);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (input_config && input_config->repeat_delay != INT_MIN
 | 
						int repeat_rate = 25;
 | 
				
			||||||
			&& input_config->repeat_rate != INT_MIN) {
 | 
						if (input_config && input_config->repeat_rate != INT_MIN) {
 | 
				
			||||||
		wlr_keyboard_set_repeat_info(wlr_device->keyboard,
 | 
							repeat_rate = input_config->repeat_rate;
 | 
				
			||||||
				input_config->repeat_rate, input_config->repeat_delay);
 | 
					 | 
				
			||||||
	} else {
 | 
					 | 
				
			||||||
		wlr_keyboard_set_repeat_info(wlr_device->keyboard, 25, 600);
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						int repeat_delay = 600;
 | 
				
			||||||
 | 
						if (input_config && input_config->repeat_delay != INT_MIN) {
 | 
				
			||||||
 | 
							repeat_delay = input_config->repeat_delay;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						wlr_keyboard_set_repeat_info(wlr_device->keyboard, repeat_rate,
 | 
				
			||||||
 | 
								repeat_delay);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	xkb_context_unref(context);
 | 
						xkb_context_unref(context);
 | 
				
			||||||
	struct wlr_seat *seat = keyboard->seat_device->sway_seat->wlr_seat;
 | 
						struct wlr_seat *seat = keyboard->seat_device->sway_seat->wlr_seat;
 | 
				
			||||||
	wlr_seat_set_keyboard(seat, wlr_device);
 | 
						wlr_seat_set_keyboard(seat, wlr_device);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue