seat: map touch to configured output name

The output name linked to the touch device
has preference when set. This happens when
the compositor runs in nested mode.
This commit is contained in:
Jens Peters 2024-01-13 00:25:08 +01:00
parent f37c495107
commit 0d7e61ab52
No known key found for this signature in database

View file

@ -263,6 +263,15 @@ new_keyboard(struct seat *seat, struct wlr_input_device *device, bool virtual)
return (struct input *)keyboard;
}
static void
map_touch_to_output(struct seat *seat, struct wlr_input_device *dev)
{
struct wlr_touch *touch = wlr_touch_from_input_device(dev);
char *output_name = touch->output_name ? touch->output_name : rc.touch.output_name;
wlr_log(WLR_INFO, "map touch to output %s\n", output_name);
map_input_to_output(seat, dev, output_name);
}
static struct input *
new_touch(struct seat *seat, struct wlr_input_device *dev)
{
@ -273,9 +282,7 @@ new_touch(struct seat *seat, struct wlr_input_device *dev)
/* In support of running with WLR_WL_OUTPUTS set to >=2 */
if (dev->type == WLR_INPUT_DEVICE_TOUCH) {
struct wlr_touch *touch = wlr_touch_from_input_device(dev);
wlr_log(WLR_INFO, "map touch to output %s\n", touch->output_name);
map_input_to_output(seat, dev, touch->output_name);
map_touch_to_output(seat, dev);
}
return input;
}