rootston exit: fix libinput destroy

The wlr_list -> wl_list rework changed 'wlr_devices' to
wl_list, but missed its use on destroy.
master
Dominique Martinet 7 years ago
parent f451ea3639
commit e3ee2cd9c7

@ -99,13 +99,12 @@ static void wlr_libinput_backend_destroy(struct wlr_backend *_backend) {
} }
struct wlr_libinput_backend *backend = (struct wlr_libinput_backend *)_backend; struct wlr_libinput_backend *backend = (struct wlr_libinput_backend *)_backend;
for (size_t i = 0; i < backend->wlr_device_lists->length; i++) { for (size_t i = 0; i < backend->wlr_device_lists->length; i++) {
struct wlr_list *wlr_devices = backend->wlr_device_lists->items[i]; struct wl_list *wlr_devices = backend->wlr_device_lists->items[i];
for (size_t j = 0; j < wlr_devices->length; j++) { struct wlr_input_device *wlr_dev, *next;
struct wlr_input_device *wlr_dev = wlr_devices->items[j]; wl_list_for_each_safe(wlr_dev, next, wlr_devices, link) {
wl_signal_emit(&backend->backend.events.input_remove, wlr_dev); wl_signal_emit(&backend->backend.events.input_remove, wlr_dev);
wlr_input_device_destroy(wlr_dev); wlr_input_device_destroy(wlr_dev);
} }
wlr_list_free(wlr_devices);
} }
wlr_list_free(backend->wlr_device_lists); wlr_list_free(backend->wlr_device_lists);
wl_event_source_remove(backend->input_event); wl_event_source_remove(backend->input_event);

@ -26,6 +26,7 @@ struct wlr_input_device *get_appropriate_device(
static void wlr_libinput_device_destroy(struct wlr_input_device *_dev) { static void wlr_libinput_device_destroy(struct wlr_input_device *_dev) {
struct wlr_libinput_input_device *dev = (struct wlr_libinput_input_device *)_dev; struct wlr_libinput_input_device *dev = (struct wlr_libinput_input_device *)_dev;
libinput_device_unref(dev->handle); libinput_device_unref(dev->handle);
wl_list_remove(&dev->wlr_input_device.link);
free(dev); free(dev);
} }

Loading…
Cancel
Save