commit 4c436a1a6f78ce9eae40791b85c02d44458de727
parent 483ede0146cd5eb5b1a68dc365f99af0c66fd156
Author: Tony Crisci <tony@dubstepdish.com>
Date: Mon, 18 Dec 2017 10:44:51 -0500
remove assumption of one device per identifier
Diffstat:
2 files changed, 11 insertions(+), 20 deletions(-)
diff --git 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
@@ -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);