Skip to content

Commit

Permalink
input: test if tablet device is a libinput device
Browse files Browse the repository at this point in the history
Otherwise we might end with a failed assertion if the
tablet or pad isn't a libinput device.

Fixes labwc#1916
  • Loading branch information
jp7677 authored and johanmalm committed Jun 18, 2024
1 parent b63c6a0 commit 1495708
Showing 1 changed file with 13 additions and 0 deletions.
13 changes: 13 additions & 0 deletions src/input/tablet-pad.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,25 @@ tablet_pad_attach_tablet(struct seat *seat)
/* loop over all tablets and all pads and link by device group */
struct drawing_tablet *tablet;
wl_list_for_each(tablet, &seat->tablets, link) {
if (!wlr_input_device_is_libinput(tablet->wlr_input_device)) {
/*
* Prevent iterating over non-libinput devices. This might
* be the case when a tablet is exposed by the Wayland
* protocol backend when running labwc as a nested compositor.
*/
continue;
}

struct libinput_device *tablet_device =
wlr_libinput_get_device_handle(tablet->wlr_input_device);
struct libinput_device_group *tablet_group =
libinput_device_get_device_group(tablet_device);

wl_list_for_each(pad, &seat->tablet_pads, link) {
if (!wlr_input_device_is_libinput(pad->wlr_input_device)) {
continue;
}

struct libinput_device *pad_device =
wlr_libinput_get_device_handle(pad->wlr_input_device);
struct libinput_device_group *pad_group =
Expand Down

0 comments on commit 1495708

Please sign in to comment.