config/output: reconfigure input devices on new output

Some input rules, like `map_to_output`, are dependent on a specific
screen being present. This currently does not work for hotplugged
outputs, or outputs that are processed after the input device is
initially probed.

This commit fixes both cases, by reconfiguring inputs on each output
addition.

Fixes #5231.
This commit is contained in:
Tudor Brindus 2020-04-20 17:52:52 -04:00 committed by Simon Ser
parent 65302093cf
commit 3de1a3958e
2 changed files with 14 additions and 1 deletions

View file

@ -652,6 +652,8 @@ static void seat_apply_input_config(struct sway_seat *seat,
}
struct sway_output *output = output_by_name_or_id(mapped_to_output);
if (!output) {
sway_log(SWAY_DEBUG, "Requested output %s for device %s isn't present",
mapped_to_output, sway_device->input_device->identifier);
return;
}
wlr_cursor_map_input_to_output(seat->cursor->cursor,
@ -701,7 +703,7 @@ static void seat_configure_keyboard(struct sway_seat *seat,
}
static void seat_configure_switch(struct sway_seat *seat,
struct sway_seat_device *seat_device) {
struct sway_seat_device *seat_device) {
if (!seat_device->switch_device) {
sway_switch_create(seat, seat_device);
}