seat: don't generate serial 0

0 is reserved to mean "no event has been sent to the client".
This commit is contained in:
Kirill Primak 2024-11-18 18:15:01 +03:00 committed by Simon Ser
parent 428279a319
commit 1c604207c6

View file

@ -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;