aboutsummaryrefslogtreecommitdiff
path: root/backend
diff options
context:
space:
mode:
Diffstat (limited to 'backend')
-rw-r--r--backend/libinput/tablet_pad.c3
-rw-r--r--backend/libinput/tablet_tool.c9
-rw-r--r--backend/wayland/tablet_v2.c6
3 files changed, 12 insertions, 6 deletions
diff --git a/backend/libinput/tablet_pad.c b/backend/libinput/tablet_pad.c
index 691bb185..c9ec30ae 100644
--- a/backend/libinput/tablet_pad.c
+++ b/backend/libinput/tablet_pad.c
@@ -85,7 +85,8 @@ struct wlr_tablet_pad *create_libinput_tablet_pad(
libinput_device_tablet_pad_get_num_strips(libinput_dev);
struct udev_device *udev = libinput_device_get_udev_device(libinput_dev);
- wlr_list_push(&wlr_tablet_pad->paths, strdup(udev_device_get_syspath(udev)));
+ char **dst = wl_array_add(&wlr_tablet_pad->paths, sizeof(char *));
+ *dst = strdup(udev_device_get_syspath(udev));
int groups = libinput_device_tablet_pad_get_num_mode_groups(libinput_dev);
for (int i = 0; i < groups; ++i) {
diff --git a/backend/libinput/tablet_tool.c b/backend/libinput/tablet_tool.c
index a6deeec8..5b867cef 100644
--- a/backend/libinput/tablet_tool.c
+++ b/backend/libinput/tablet_tool.c
@@ -84,15 +84,18 @@ struct wlr_tablet *create_libinput_tablet(
wlr_log(WLR_ERROR, "Unable to allocate wlr_tablet_tool");
return NULL;
}
+
struct wlr_tablet *wlr_tablet = &libinput_tablet->wlr_tablet;
+ wlr_tablet_init(wlr_tablet, &tablet_impl);
- wlr_list_init(&wlr_tablet->paths);
struct udev_device *udev = libinput_device_get_udev_device(libinput_dev);
- wlr_list_push(&wlr_tablet->paths, strdup(udev_device_get_syspath(udev)));
+ char **dst = wl_array_add(&wlr_tablet->paths, sizeof(char *));
+ *dst = strdup(udev_device_get_syspath(udev));
+
wlr_tablet->name = strdup(libinput_device_get_name(libinput_dev));
+
wl_list_init(&libinput_tablet->tools);
- wlr_tablet_init(wlr_tablet, &tablet_impl);
return wlr_tablet;
}
diff --git a/backend/wayland/tablet_v2.c b/backend/wayland/tablet_v2.c
index b7ad73ea..9f90a369 100644
--- a/backend/wayland/tablet_v2.c
+++ b/backend/wayland/tablet_v2.c
@@ -336,7 +336,8 @@ static void handle_tablet_pad_path(void *data,
struct wlr_wl_input_device *dev = data;
struct wlr_tablet_pad *tablet_pad = dev->wlr_input_device.tablet_pad;
- wlr_list_push(&tablet_pad->paths, strdup(path));
+ char **dst = wl_array_add(&tablet_pad->paths, sizeof(char *));
+ *dst = strdup(path);
}
static void handle_tablet_pad_buttons(void *data,
@@ -854,7 +855,8 @@ static void handle_tablet_path(void *data, struct zwp_tablet_v2 *zwp_tablet_v2,
struct wlr_wl_input_device *dev = data;
struct wlr_tablet *tablet = dev->wlr_input_device.tablet;
- wlr_list_push(&tablet->paths, strdup(path));
+ char **dst = wl_array_add(&tablet->paths, sizeof(char *));
+ *dst = strdup(path);
}
static void handle_tablet_done(void *data, struct zwp_tablet_v2 *zwp_tablet_v2) {