aboutsummaryrefslogtreecommitdiff
path: root/sway/input
diff options
context:
space:
mode:
Diffstat (limited to 'sway/input')
-rw-r--r--sway/input/input-manager.c29
-rw-r--r--sway/input/keyboard.c2
2 files changed, 11 insertions, 20 deletions
diff --git a/sway/input/input-manager.c b/sway/input/input-manager.c
index 12a66917..52da8f5e 100644
--- a/sway/input/input-manager.c
+++ b/sway/input/input-manager.c
@@ -83,17 +83,6 @@ static struct sway_input_device *input_sway_device_from_wlr(
return NULL;
}
-static struct sway_input_device *input_sway_device_from_config(
- struct sway_input_manager *input, struct input_config *config) {
- struct sway_input_device *input_device = NULL;
- wl_list_for_each(input_device, &input->devices, link) {
- if (strcmp(input_device->identifier, config->identifier) == 0) {
- return input_device;
- }
- }
- return NULL;
-}
-
static bool input_has_seat_configuration(struct sway_input_manager *input) {
struct sway_seat *seat = NULL;
wl_list_for_each(seat, &input->seats, link) {
@@ -238,16 +227,16 @@ void sway_input_manager_set_focus(struct sway_input_manager *input,
void sway_input_manager_apply_input_config(struct sway_input_manager *input,
struct input_config *input_config) {
- struct sway_input_device *input_device =
- input_sway_device_from_config(input, input_config);
- if (!input_device) {
- return;
- }
- input_device->config = input_config;
+ struct sway_input_device *input_device = NULL;
+ wl_list_for_each(input_device, &input->devices, link) {
+ if (strcmp(input_device->identifier, input_config->identifier) == 0) {
+ input_device->config = input_config;
- struct sway_seat *seat = NULL;
- wl_list_for_each(seat, &input->seats, link) {
- sway_seat_configure_device(seat, input_device);
+ struct sway_seat *seat = NULL;
+ wl_list_for_each(seat, &input->seats, link) {
+ sway_seat_configure_device(seat, input_device);
+ }
+ }
}
}
diff --git a/sway/input/keyboard.c b/sway/input/keyboard.c
index ce0df3c5..bb18edd2 100644
--- a/sway/input/keyboard.c
+++ b/sway/input/keyboard.c
@@ -91,6 +91,8 @@ void sway_keyboard_configure(struct sway_keyboard *keyboard) {
wlr_keyboard_set_keymap(wlr_device->keyboard, keyboard->keymap);
wlr_keyboard_set_repeat_info(wlr_device->keyboard, 25, 600);
xkb_context_unref(context);
+ struct wlr_seat *seat = keyboard->seat_device->sway_seat->wlr_seat;
+ wlr_seat_set_keyboard(seat, wlr_device);
wl_list_remove(&keyboard->keyboard_key.link);
wl_signal_add(&wlr_device->keyboard->events.key, &keyboard->keyboard_key);