diff options
Diffstat (limited to 'backend/headless/input_device.c')
-rw-r--r-- | backend/headless/input_device.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/backend/headless/input_device.c b/backend/headless/input_device.c index 1d91f8d1..4df01aff 100644 --- a/backend/headless/input_device.c +++ b/backend/headless/input_device.c @@ -12,8 +12,10 @@ #include "util/signal.h" static void input_device_destroy(struct wlr_input_device *wlr_dev) { - wl_list_remove(&wlr_dev->link); - free(wlr_dev); + struct wlr_headless_input_device *dev = + wl_container_of(wlr_dev, dev, wlr_input_device); + wl_list_remove(&dev->link); + free(dev); } static const struct wlr_input_device_impl input_device_impl = { @@ -93,7 +95,7 @@ struct wlr_input_device *wlr_headless_add_input_device( wlr_switch_init(wlr_device->switch_device, NULL); } - wl_list_insert(&backend->input_devices, &wlr_device->link); + wl_list_insert(&backend->input_devices, &device->link); if (backend->started) { wlr_signal_emit_safe(&backend->backend.events.new_input, wlr_device); |