diff options
author | Simon Ser <contact@emersion.fr> | 2021-11-22 22:30:40 +0100 |
---|---|---|
committer | Simon Zeni <simon@bl4ckb0ne.ca> | 2021-11-23 14:14:18 +0000 |
commit | 1d9c1bcea6a223379af63b4d779d53663eaffcf8 (patch) | |
tree | ddab71bb63061a9bb0868fdce1496b52b4fea5a5 /backend/headless | |
parent | c9ba9e82b6a829d6e6d5acc65753b3ade46cefb9 (diff) | |
download | wlroots-1d9c1bcea6a223379af63b4d779d53663eaffcf8.tar.xz |
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')
-rw-r--r-- | backend/headless/backend.c | 5 | ||||
-rw-r--r-- | backend/headless/input_device.c | 8 |
2 files changed, 7 insertions, 6 deletions
diff --git a/backend/headless/backend.c b/backend/headless/backend.c index 886be276..ad0c4ebf 100644 --- a/backend/headless/backend.c +++ b/backend/headless/backend.c @@ -33,8 +33,7 @@ static bool backend_start(struct wlr_backend *wlr_backend) { } struct wlr_headless_input_device *input_device; - wl_list_for_each(input_device, &backend->input_devices, - wlr_input_device.link) { + wl_list_for_each(input_device, &backend->input_devices, link) { wlr_signal_emit_safe(&backend->backend.events.new_input, &input_device->wlr_input_device); } @@ -59,7 +58,7 @@ static void backend_destroy(struct wlr_backend *wlr_backend) { struct wlr_headless_input_device *input_device, *input_device_tmp; wl_list_for_each_safe(input_device, input_device_tmp, - &backend->input_devices, wlr_input_device.link) { + &backend->input_devices, link) { wlr_input_device_destroy(&input_device->wlr_input_device); } 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); |