aboutsummaryrefslogtreecommitdiff
path: root/backend/headless/input_device.c
diff options
context:
space:
mode:
authorSimon Ser <contact@emersion.fr>2021-11-22 22:30:40 +0100
committerSimon Zeni <simon@bl4ckb0ne.ca>2021-11-23 14:14:18 +0000
commit1d9c1bcea6a223379af63b4d779d53663eaffcf8 (patch)
treeddab71bb63061a9bb0868fdce1496b52b4fea5a5 /backend/headless/input_device.c
parentc9ba9e82b6a829d6e6d5acc65753b3ade46cefb9 (diff)
input-device: remove wlr_input_device.link
This field's ownership is unclear: it's in wlr_input_device, but it's not managed by the common code, it's up to each individual backend to use it and clean it up. Since this is a backend implementation detail, move it to the backend-specific structs.
Diffstat (limited to 'backend/headless/input_device.c')
-rw-r--r--backend/headless/input_device.c8
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);