static void device_added(struct udev_input *input, struct libinput_device *libinput_device) { struct weston_compositor *c; struct evdev_device *device; struct weston_output *output; const char *output_name; struct weston_seat *seat; struct udev_seat *udev_seat; struct weston_pointer *pointer; c = input->compositor; udev_seat = get_udev_seat(input, libinput_device); if (!udev_seat) return; seat = &udev_seat->base; device = evdev_device_create(libinput_device, seat); if (device == NULL) return; if (input->configure_device != NULL) input->configure_device(c, device->device); evdev_device_set_calibration(device); udev_seat = (struct udev_seat *) seat; wl_list_insert(udev_seat->devices_list.prev, &device->link); pointer = weston_seat_get_pointer(seat); if (seat->output && pointer) weston_pointer_clamp(pointer, &pointer->x, &pointer->y); output_name = libinput_device_get_output_name(libinput_device); if (output_name) { device->output_name = strdup(output_name); wl_list_for_each(output, &c->output_list, link) if (output->name && strcmp(output->name, device->output_name) == 0) evdev_device_set_output(device, output); } else if (device->output == NULL && !wl_list_empty(&c->output_list)) {
static void device_added(struct udev_input *input, struct libinput_device *libinput_device) { struct weston_compositor *c; struct evdev_device *device; struct weston_output *output; const char *seat_name; const char *output_name; struct libinput_seat *libinput_seat; struct weston_seat *seat; struct udev_seat *udev_seat; c = input->compositor; libinput_seat = libinput_device_get_seat(libinput_device); seat_name = libinput_seat_get_logical_name(libinput_seat); udev_seat = udev_seat_get_named(input, seat_name); if (!udev_seat) return; seat = &udev_seat->base; device = evdev_device_create(libinput_device, seat); if (device == NULL) return; udev_seat = (struct udev_seat *) seat; wl_list_insert(udev_seat->devices_list.prev, &device->link); if (seat->output && seat->pointer) weston_pointer_clamp(seat->pointer, &seat->pointer->x, &seat->pointer->y); output_name = libinput_device_get_output_name(libinput_device); if (output_name) { device->output_name = strdup(output_name); wl_list_for_each(output, &c->output_list, link) if (strcmp(output->name, device->output_name) == 0) evdev_device_set_output(device, output); } else if (device->output == NULL) {