]> git.mdlowis.com Git - proto/labwc.git/commitdiff
input: ensure that our own tablet structs are created
authorJens Peters <jp7677@gmail.com>
Sat, 10 Aug 2024 05:05:05 +0000 (07:05 +0200)
committerConsolatis <35009135+Consolatis@users.noreply.github.com>
Tue, 13 Aug 2024 16:40:34 +0000 (18:40 +0200)
src/input/tablet.c

index 489da6fa62e535429147b0f1b084c4bc52819235..5563db0c4bed2637622caf7091439a44d79f8791 100644 (file)
@@ -241,6 +241,10 @@ handle_tablet_tool_proximity(struct wl_listener *listener, void *data)
        struct wlr_tablet_tool_proximity_event *ev = data;
        struct drawing_tablet *tablet = ev->tablet->data;
        struct drawing_tablet_tool *tool = ev->tool->data;
+       if (!tablet) {
+               wlr_log(WLR_DEBUG, "tool proximity event before tablet create");
+               return;
+       }
 
        if (ev->state == WLR_TABLET_TOOL_PROXIMITY_IN) {
                tablet->motion_mode =
@@ -291,6 +295,10 @@ handle_tablet_tool_axis(struct wl_listener *listener, void *data)
        struct wlr_tablet_tool_axis_event *ev = data;
        struct drawing_tablet *tablet = ev->tablet->data;
        struct drawing_tablet_tool *tool = ev->tool->data;
+       if (!tablet) {
+               wlr_log(WLR_DEBUG, "tool axis event before tablet create");
+               return;
+       }
 
        /*
         * Reset relative coordinates. If those axes aren't updated,
@@ -465,6 +473,10 @@ handle_tablet_tool_tip(struct wl_listener *listener, void *data)
        struct wlr_tablet_tool_tip_event *ev = data;
        struct drawing_tablet *tablet = ev->tablet->data;
        struct drawing_tablet_tool *tool = ev->tool->data;
+       if (!tablet) {
+               wlr_log(WLR_DEBUG, "tool tip event before tablet create");
+               return;
+       }
 
        double x, y, dx, dy;
        struct wlr_surface *surface = tablet_get_coords(tablet, &x, &y, &dx, &dy);
@@ -540,6 +552,10 @@ handle_tablet_tool_button(struct wl_listener *listener, void *data)
        struct wlr_tablet_tool_button_event *ev = data;
        struct drawing_tablet *tablet = ev->tablet->data;
        struct drawing_tablet_tool *tool = ev->tool->data;
+       if (!tablet) {
+               wlr_log(WLR_DEBUG, "tool button event before tablet create");
+               return;
+       }
 
        double x, y, dx, dy;
        struct wlr_surface *surface = tablet_get_coords(tablet, &x, &y, &dx, &dy);