diff --git a/src/ext-protocol/tablet.h b/src/ext-protocol/tablet.h index 7958081..2e1f21e 100644 --- a/src/ext-protocol/tablet.h +++ b/src/ext-protocol/tablet.h @@ -55,7 +55,10 @@ void createtablet(struct wlr_input_device *device) { } } -void destroytablet(struct wl_listener *listener, void *data) { tablet = NULL; } +void destroytablet(struct wl_listener *listener, void *data) { + wl_list_remove(&listener->link); + tablet = NULL; +} void destroytabletsurfacenotify(struct wl_listener *listener, void *data) { if (tablet_curr_surface) @@ -69,10 +72,9 @@ void destroytablettool(struct wl_listener *listener, void *data) { } void tabletapplymap(double tablet_width, double tablet_height, - struct wlr_fbox box, double *x, double *y) -{ - if ((!box.x && !box.y && !box.width && !box.height) - || !tablet_width || !tablet_height) { + struct wlr_fbox box, double *x, double *y) { + if ((!box.x && !box.y && !box.width && !box.height) || !tablet_width || + !tablet_height) { return; } @@ -104,7 +106,7 @@ void tablettoolmotion(struct wlr_tablet_v2_tablet_tool *tool, bool change_x, return; tabletapplymap(tablet->wlr_tablet->width_mm, tablet->wlr_tablet->height_mm, - (struct wlr_fbox){0}, &x, &y); + (struct wlr_fbox){0}, &x, &y); // TODO: apply constraints switch (tablet_tool->wlr_tool->type) {