udev: Use WL_OUTPUT udev attribute for pairing touchscreens to outputs

This commit is contained in:
Kristian Høgsberg 2013-07-22 15:11:11 -07:00
parent f2807701d9
commit 0e17de1c0b

View File

@ -45,8 +45,9 @@ device_added(struct udev_device *udev_device, struct udev_input *input)
{ {
struct weston_compositor *c; struct weston_compositor *c;
struct evdev_device *device; struct evdev_device *device;
struct weston_output *output;
const char *devnode; const char *devnode;
const char *device_seat, *seat_name; const char *device_seat, *seat_name, *output_name;
const char *calibration_values; const char *calibration_values;
int fd; int fd;
struct udev_seat *seat; struct udev_seat *seat;
@ -120,6 +121,13 @@ device_added(struct udev_device *udev_device, struct udev_input *input)
&seat->base.pointer->x, &seat->base.pointer->x,
&seat->base.pointer->y); &seat->base.pointer->y);
output_name = udev_device_get_property_value(udev_device, "WL_OUTPUT");
if (output_name) {
wl_list_for_each(output, &c->output_list, link)
if (strcmp(output->name, output_name) == 0)
device->output = output;
}
return 0; return 0;
} }