]> git.mdlowis.com Git - proto/labwc.git/commitdiff
input: subscribe to tablet tool events from cursor
authorJens Peters <jp7677@gmail.com>
Thu, 8 Aug 2024 15:46:20 +0000 (17:46 +0200)
committerJohan Malm <johanmalm@users.noreply.github.com>
Thu, 8 Aug 2024 19:27:06 +0000 (20:27 +0100)
Contrary to the raw tablet events, the cursor events transform
the coordinates based on a mapped output orientation.
Otherwise those events are the same.

include/input/tablet.h
src/input/tablet.c

index 93fdda5aa4593293a42f8c06999297a4df01d88c..0ca11fae8a270720b49db9fb60c07365465094e5 100644 (file)
@@ -23,10 +23,10 @@ struct drawing_tablet {
        double slider;
        double wheel_delta;
        struct {
-               struct wl_listener proximity;
-               struct wl_listener axis;
-               struct wl_listener tip;
-               struct wl_listener button;
+               struct wl_listener tablet_tool_proximity;
+               struct wl_listener tablet_tool_axis;
+               struct wl_listener tablet_tool_tip;
+               struct wl_listener tablet_tool_button;
                struct wl_listener destroy;
        } handlers;
        struct wl_list link; /* seat.tablets */
index 743fa72ec049159d7cbfae4068085238de601add..341d45ace22ddb6195b036bc9632aa08049c2c75 100644 (file)
@@ -236,7 +236,7 @@ notify_motion(struct drawing_tablet *tablet, struct drawing_tablet_tool *tool,
 }
 
 static void
-handle_proximity(struct wl_listener *listener, void *data)
+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;
@@ -286,7 +286,7 @@ handle_proximity(struct wl_listener *listener, void *data)
 static bool is_down_mouse_emulation = false;
 
 static void
-handle_axis(struct wl_listener *listener, void *data)
+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;
@@ -460,7 +460,7 @@ seat_pointer_end_grab(struct drawing_tablet_tool *tool,
 }
 
 static void
-handle_tip(struct wl_listener *listener, void *data)
+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;
@@ -535,7 +535,7 @@ handle_tip(struct wl_listener *listener, void *data)
 }
 
 static void
-handle_button(struct wl_listener *listener, void *data)
+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;
@@ -604,10 +604,10 @@ handle_destroy(struct wl_listener *listener, void *data)
        wl_list_remove(&tablet->link);
        tablet_pad_attach_tablet(tablet->seat);
 
-       wl_list_remove(&tablet->handlers.tip.link);
-       wl_list_remove(&tablet->handlers.button.link);
-       wl_list_remove(&tablet->handlers.proximity.link);
-       wl_list_remove(&tablet->handlers.axis.link);
+       wl_list_remove(&tablet->handlers.tablet_tool_tip.link);
+       wl_list_remove(&tablet->handlers.tablet_tool_button.link);
+       wl_list_remove(&tablet->handlers.tablet_tool_proximity.link);
+       wl_list_remove(&tablet->handlers.tablet_tool_axis.link);
        wl_list_remove(&tablet->handlers.destroy.link);
        free(tablet);
 }
@@ -636,10 +636,10 @@ tablet_init(struct seat *seat, struct wlr_input_device *wlr_device)
        tablet->wheel_delta = 0.0;
        wlr_log(WLR_INFO, "tablet dimensions: %.2fmm x %.2fmm",
                tablet->tablet->width_mm, tablet->tablet->height_mm);
-       CONNECT_SIGNAL(tablet->tablet, &tablet->handlers, axis);
-       CONNECT_SIGNAL(tablet->tablet, &tablet->handlers, proximity);
-       CONNECT_SIGNAL(tablet->tablet, &tablet->handlers, tip);
-       CONNECT_SIGNAL(tablet->tablet, &tablet->handlers, button);
+       CONNECT_SIGNAL(seat->cursor, &tablet->handlers, tablet_tool_axis);
+       CONNECT_SIGNAL(seat->cursor, &tablet->handlers, tablet_tool_proximity);
+       CONNECT_SIGNAL(seat->cursor, &tablet->handlers, tablet_tool_tip);
+       CONNECT_SIGNAL(seat->cursor, &tablet->handlers, tablet_tool_button);
        CONNECT_SIGNAL(wlr_device, &tablet->handlers, destroy);
 
        wl_list_insert(&seat->tablets, &tablet->link);