aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManuel Stoeckl <code@mstoeckl.com>2019-06-29 10:10:24 -0400
committerDrew DeVault <sir@cmpwn.com>2019-06-30 15:01:05 -0400
commit1ef0c03a46dc715aebc02402ec6b19007ecfd355 (patch)
tree7384c2159a0f16cc0cfdb741dd23c4565c36425e
parent1d78bae19d5c8261c6c707c8f6320883dd48f85f (diff)
wlr_tablet_v2: Register event serials
-rw-r--r--include/types/wlr_tablet_v2.h1
-rw-r--r--types/tablet_v2/wlr_tablet_v2_pad.c12
-rw-r--r--types/tablet_v2/wlr_tablet_v2_tool.c12
3 files changed, 14 insertions, 11 deletions
diff --git a/include/types/wlr_tablet_v2.h b/include/types/wlr_tablet_v2.h
index becde596..334ea210 100644
--- a/include/types/wlr_tablet_v2.h
+++ b/include/types/wlr_tablet_v2.h
@@ -48,6 +48,7 @@ struct wlr_tablet_pad_client_v2 {
struct wl_client *client;
struct wl_resource *resource;
struct wlr_tablet_v2_tablet_pad *pad;
+ struct wlr_tablet_seat_client_v2 *seat;
size_t button_count;
diff --git a/types/tablet_v2/wlr_tablet_v2_pad.c b/types/tablet_v2/wlr_tablet_v2_pad.c
index 578eef06..d7cd5e3e 100644
--- a/types/tablet_v2/wlr_tablet_v2_pad.c
+++ b/types/tablet_v2/wlr_tablet_v2_pad.c
@@ -276,6 +276,7 @@ void add_tablet_pad_client(struct wlr_tablet_seat_client_v2 *seat,
return;
}
client->pad = pad;
+ client->seat = seat;
client->groups = calloc(wl_list_length(&pad->wlr_pad->groups), sizeof(struct wl_resource*));
if (!client->groups) {
@@ -450,7 +451,8 @@ uint32_t wlr_send_tablet_v2_tablet_pad_enter(
pad->current_client = pad_client;
- uint32_t serial = wl_display_next_serial(wl_client_get_display(client));
+ uint32_t serial = wlr_seat_client_next_serial(
+ pad_client->seat->seat_client);
zwp_tablet_pad_v2_send_enter(pad_client->resource, serial,
tablet_client->resource, surface->resource);
@@ -526,7 +528,9 @@ uint32_t wlr_send_tablet_v2_tablet_pad_leave(struct wlr_tablet_v2_tablet_pad *pa
return 0;
}
- uint32_t serial = wl_display_next_serial(wl_client_get_display(client));
+
+ uint32_t serial = wlr_seat_client_next_serial(
+ pad->current_client->seat->seat_client);
zwp_tablet_pad_v2_send_leave(pad->current_client->resource, serial, surface->resource);
return serial;
@@ -546,8 +550,8 @@ uint32_t wlr_send_tablet_v2_tablet_pad_mode(struct wlr_tablet_v2_tablet_pad *pad
pad->groups[group] = mode;
- struct wl_client *client = wl_resource_get_client(pad->current_client->resource);
- uint32_t serial = wl_display_next_serial(wl_client_get_display(client));
+ uint32_t serial = wlr_seat_client_next_serial(
+ pad->current_client->seat->seat_client);
zwp_tablet_pad_group_v2_send_mode_switch(
pad->current_client->groups[group], time, serial, mode);
diff --git a/types/tablet_v2/wlr_tablet_v2_tool.c b/types/tablet_v2/wlr_tablet_v2_tool.c
index fc151e52..7b989fbf 100644
--- a/types/tablet_v2/wlr_tablet_v2_tool.c
+++ b/types/tablet_v2/wlr_tablet_v2_tool.c
@@ -350,7 +350,7 @@ void wlr_send_tablet_v2_tablet_tool_proximity_in(
tool->current_client = tool_client;
- uint32_t serial = wl_display_next_serial(wl_client_get_display(client));
+ uint32_t serial = wlr_seat_client_next_serial(tool_client->seat->seat_client);
tool->focused_surface = surface;
tool->proximity_serial = serial;
@@ -466,9 +466,8 @@ void wlr_send_tablet_v2_tablet_tool_button(
ssize_t index = tablet_tool_button_update(tool, button, state);
if (tool->current_client) {
- struct wl_client *client =
- wl_resource_get_client(tool->current_client->resource);
- uint32_t serial = wl_display_next_serial(wl_client_get_display(client));
+ uint32_t serial = wlr_seat_client_next_serial(
+ tool->current_client->seat->seat_client);
if (index >= 0) {
tool->pressed_serials[index] = serial;
}
@@ -496,9 +495,8 @@ void wlr_send_tablet_v2_tablet_tool_down(struct wlr_tablet_v2_tablet_tool *tool)
tool->is_down = true;
if (tool->current_client) {
- struct wl_client *client =
- wl_resource_get_client(tool->current_client->resource);
- uint32_t serial = wl_display_next_serial(wl_client_get_display(client));
+ uint32_t serial = wlr_seat_client_next_serial(
+ tool->current_client->seat->seat_client);
zwp_tablet_tool_v2_send_down(tool->current_client->resource,
serial);