From 1c604207c67f4ddd65d66d543f99c98325531e89 Mon Sep 17 00:00:00 2001 From: Kirill Primak Date: Mon, 18 Nov 2024 18:15:01 +0300 Subject: [PATCH] seat: don't generate serial 0 0 is reserved to mean "no event has been sent to the client". --- types/seat/wlr_seat.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/types/seat/wlr_seat.c b/types/seat/wlr_seat.c index 2e8e4a844..5ca69aac8 100644 --- a/types/seat/wlr_seat.c +++ b/types/seat/wlr_seat.c @@ -443,9 +443,13 @@ struct wlr_seat_client *wlr_seat_client_from_resource( } uint32_t wlr_seat_client_next_serial(struct wlr_seat_client *client) { - uint32_t serial = wl_display_next_serial(wl_client_get_display(client->client)); - struct wlr_serial_ringset *set = &client->serials; + struct wl_display *display = wl_client_get_display(client->client); + uint32_t serial = wl_display_next_serial(display); + if (serial == 0) { + serial = wl_display_next_serial(display); + } + struct wlr_serial_ringset *set = &client->serials; if (set->count == 0) { set->data[0].min_incl = serial; set->data[0].max_incl = serial;