From 726d187d3ce83431a2565cc1b423af99da5f7b6b Mon Sep 17 00:00:00 2001 From: Tudor Brindus Date: Thu, 7 May 2020 18:57:06 -0400 Subject: [PATCH] input/tablet: simplify parameter plumbing for tablet references This is a small cleanup commit for removing `sway_tablet` parameters from functions that already accept `sway_tablet_tool`, since the tablet reference can be accessed through `tool->tablet`. --- include/sway/input/seat.h | 5 ++--- sway/input/cursor.c | 17 ++++++++--------- sway/input/seat.c | 5 ++--- sway/input/seatop_default.c | 5 ++--- 4 files changed, 14 insertions(+), 18 deletions(-) diff --git a/include/sway/input/seat.h b/include/sway/input/seat.h index 2e98a244..fa232aa2 100644 --- a/include/sway/input/seat.h +++ b/include/sway/input/seat.h @@ -21,7 +21,7 @@ struct sway_seatop_impl { void (*pointer_axis)(struct sway_seat *seat, struct wlr_event_pointer_axis *event); void (*rebase)(struct sway_seat *seat, uint32_t time_msec); - void (*tablet_tool_motion)(struct sway_seat *seat, struct sway_tablet *tablet, + void (*tablet_tool_motion)(struct sway_seat *seat, struct sway_tablet_tool *tool, uint32_t time_msec, double dx, double dy); void (*end)(struct sway_seat *seat); void (*unref)(struct sway_seat *seat, struct sway_container *con); @@ -269,8 +269,7 @@ void seatop_pointer_axis(struct sway_seat *seat, struct wlr_event_pointer_axis *event); void seatop_tablet_tool_motion(struct sway_seat *seat, - struct sway_tablet *tablet, struct sway_tablet_tool *tool, - uint32_t time_msec, double dx, double dy); + struct sway_tablet_tool *tool, uint32_t time_msec, double dx, double dy); void seatop_rebase(struct sway_seat *seat, uint32_t time_msec); diff --git a/sway/input/cursor.c b/sway/input/cursor.c index 271c95f9..bb846e38 100644 --- a/sway/input/cursor.c +++ b/sway/input/cursor.c @@ -511,8 +511,7 @@ static void apply_mapping_from_region(struct wlr_input_device *device, } static void handle_tablet_tool_position(struct sway_cursor *cursor, - struct sway_tablet *tablet, - struct wlr_tablet_tool *tool, + struct sway_tablet_tool *tool, bool change_x, bool change_y, double x, double y, double dx, double dy, int32_t time_msec) { @@ -522,6 +521,7 @@ static void handle_tablet_tool_position(struct sway_cursor *cursor, return; } + struct sway_tablet *tablet = tool->tablet; struct sway_input_device *input_device = tablet->seat_device->input_device; struct input_config *ic = input_device_get_config(input_device); if (ic != NULL && ic->mapped_from_region != NULL) { @@ -529,7 +529,7 @@ static void handle_tablet_tool_position(struct sway_cursor *cursor, ic->mapped_from_region, &x, &y); } - switch (tool->type) { + switch (tool->tablet_v2_tool->wlr_tool->type) { case WLR_TABLET_TOOL_TYPE_MOUSE: wlr_cursor_move(cursor->cursor, input_device->wlr_device, dx, dy); break; @@ -542,12 +542,11 @@ static void handle_tablet_tool_position(struct sway_cursor *cursor, struct wlr_surface *surface = NULL; struct sway_seat *seat = cursor->seat; node_at_coords(seat, cursor->cursor->x, cursor->cursor->y, &surface, &sx, &sy); - struct sway_tablet_tool *sway_tool = tool->data; if (surface && wlr_surface_accepts_tablet_v2(tablet->tablet_v2, surface)) { - seatop_tablet_tool_motion(seat, tablet, sway_tool, time_msec, dx, dy); + seatop_tablet_tool_motion(seat, tool, time_msec, dx, dy); } else { - wlr_tablet_v2_tablet_tool_notify_proximity_out(sway_tool->tablet_v2_tool); + wlr_tablet_v2_tablet_tool_notify_proximity_out(tool->tablet_v2_tool); pointer_motion(cursor, time_msec, input_device->wlr_device, dx, dy, dx, dy); } @@ -565,7 +564,7 @@ static void handle_tool_axis(struct wl_listener *listener, void *data) { return; } - handle_tablet_tool_position(cursor, sway_tool->tablet, event->tool, + handle_tablet_tool_position(cursor, sway_tool, event->updated_axes & WLR_TABLET_TOOL_AXIS_X, event->updated_axes & WLR_TABLET_TOOL_AXIS_Y, event->x, event->y, event->dx, event->dy, event->time_msec); @@ -691,8 +690,8 @@ static void handle_tool_proximity(struct wl_listener *listener, void *data) { return; } - handle_tablet_tool_position(cursor, sway_tool->tablet, event->tool, - true, true, event->x, event->y, 0, 0, event->time_msec); + handle_tablet_tool_position(cursor, sway_tool, true, true, event->x, event->y, + 0, 0, event->time_msec); } static void handle_tool_button(struct wl_listener *listener, void *data) { diff --git a/sway/input/seat.c b/sway/input/seat.c index 4abffb25..aa46940d 100644 --- a/sway/input/seat.c +++ b/sway/input/seat.c @@ -1464,10 +1464,9 @@ void seatop_pointer_axis(struct sway_seat *seat, } void seatop_tablet_tool_motion(struct sway_seat *seat, - struct sway_tablet *tablet, struct sway_tablet_tool *tool, - uint32_t time_msec, double dx, double dy) { + struct sway_tablet_tool *tool, uint32_t time_msec, double dx, double dy) { if (seat->seatop_impl->tablet_tool_motion) { - seat->seatop_impl->tablet_tool_motion(seat, tablet, tool, time_msec, dx, dy); + seat->seatop_impl->tablet_tool_motion(seat, tool, time_msec, dx, dy); } else { seatop_pointer_motion(seat, time_msec, dx, dy); } diff --git a/sway/input/seatop_default.c b/sway/input/seatop_default.c index e0838c04..64a17157 100644 --- a/sway/input/seatop_default.c +++ b/sway/input/seatop_default.c @@ -475,8 +475,7 @@ static void handle_pointer_motion(struct sway_seat *seat, uint32_t time_msec, } static void handle_tablet_tool_motion(struct sway_seat *seat, - struct sway_tablet *tablet, struct sway_tablet_tool *tool, - uint32_t time_msec, double dx, double dy) { + struct sway_tablet_tool *tool, uint32_t time_msec, double dx, double dy) { struct seatop_default_event *e = seat->seatop_data; struct sway_cursor *cursor = seat->cursor; @@ -492,7 +491,7 @@ static void handle_tablet_tool_motion(struct sway_seat *seat, if (surface) { if (seat_is_input_allowed(seat, surface)) { wlr_tablet_v2_tablet_tool_notify_proximity_in(tool->tablet_v2_tool, - tablet->tablet_v2, surface); + tool->tablet->tablet_v2, surface); wlr_tablet_v2_tablet_tool_notify_motion(tool->tablet_v2_tool, sx, sy); } } else {