launcher: add weston_launcher_close() dummy
If you request a device via weston_launcher_open(), you should now release it via weston_launcher_close() instead of close(). This is currently not needed but will be required for logind devices.
This commit is contained in:
committed by
Kristian Høgsberg
parent
814d49f0b4
commit
e461f85385
@@ -173,6 +173,12 @@ weston_launcher_open(struct weston_launcher *launcher,
|
|||||||
return data->fd;
|
return data->fd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
weston_launcher_close(struct weston_launcher *launcher, int fd)
|
||||||
|
{
|
||||||
|
close(fd);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
weston_launcher_restore(struct weston_launcher *launcher)
|
weston_launcher_restore(struct weston_launcher *launcher)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -39,6 +39,9 @@ int
|
|||||||
weston_launcher_open(struct weston_launcher *launcher,
|
weston_launcher_open(struct weston_launcher *launcher,
|
||||||
const char *path, int flags);
|
const char *path, int flags);
|
||||||
|
|
||||||
|
void
|
||||||
|
weston_launcher_close(struct weston_launcher *launcher, int fd);
|
||||||
|
|
||||||
int
|
int
|
||||||
weston_launcher_activate_vt(struct weston_launcher *launcher, int vt);
|
weston_launcher_activate_vt(struct weston_launcher *launcher, int vt);
|
||||||
|
|
||||||
|
|||||||
+8
-3
@@ -83,11 +83,11 @@ device_added(struct udev_device *udev_device, struct udev_input *input)
|
|||||||
|
|
||||||
device = evdev_device_create(&seat->base, devnode, fd);
|
device = evdev_device_create(&seat->base, devnode, fd);
|
||||||
if (device == EVDEV_UNHANDLED_DEVICE) {
|
if (device == EVDEV_UNHANDLED_DEVICE) {
|
||||||
close(fd);
|
weston_launcher_close(c->launcher, fd);
|
||||||
weston_log("not using input device '%s'.\n", devnode);
|
weston_log("not using input device '%s'.\n", devnode);
|
||||||
return 0;
|
return 0;
|
||||||
} else if (device == NULL) {
|
} else if (device == NULL) {
|
||||||
close(fd);
|
weston_launcher_close(c->launcher, fd);
|
||||||
weston_log("failed to create input device '%s'.\n", devnode);
|
weston_log("failed to create input device '%s'.\n", devnode);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -219,6 +219,8 @@ evdev_udev_handler(int fd, uint32_t mask, void *data)
|
|||||||
if (!strcmp(device->devnode, devnode)) {
|
if (!strcmp(device->devnode, devnode)) {
|
||||||
weston_log("input device %s, %s removed\n",
|
weston_log("input device %s, %s removed\n",
|
||||||
device->devname, device->devnode);
|
device->devname, device->devnode);
|
||||||
|
weston_launcher_close(input->compositor->launcher,
|
||||||
|
device->fd);
|
||||||
evdev_device_destroy(device);
|
evdev_device_destroy(device);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -278,8 +280,11 @@ udev_input_remove_devices(struct udev_input *input)
|
|||||||
struct udev_seat *seat;
|
struct udev_seat *seat;
|
||||||
|
|
||||||
wl_list_for_each(seat, &input->compositor->seat_list, base.link) {
|
wl_list_for_each(seat, &input->compositor->seat_list, base.link) {
|
||||||
wl_list_for_each_safe(device, next, &seat->devices_list, link)
|
wl_list_for_each_safe(device, next, &seat->devices_list, link) {
|
||||||
|
weston_launcher_close(input->compositor->launcher,
|
||||||
|
device->fd);
|
||||||
evdev_device_destroy(device);
|
evdev_device_destroy(device);
|
||||||
|
}
|
||||||
|
|
||||||
if (seat->base.keyboard)
|
if (seat->base.keyboard)
|
||||||
notify_keyboard_focus_out(&seat->base);
|
notify_keyboard_focus_out(&seat->base);
|
||||||
|
|||||||
Reference in New Issue
Block a user