interface/wlr_keyboard: rework destroy sequence

The destroy member in wlr_keyboard_impl has been removed. The function
`wlr_keyboard_finish` has been introduce to clean up the resources owned by a
wlr_keyboard.

`wlr_input_device_destroy` no longer destroys the wlr_keyboard, attempting to
destroy a wlr_keyboard will result in a no-op.

The field `name` has been added to the wlr_keyboard_impl to be able to identify
a given wlr_keyboard device.
This commit is contained in:
Simon Zeni 2022-03-01 14:49:30 -05:00 committed by Kirill Primak
parent 39b68ea47a
commit 7dc4a3ecd7
10 changed files with 52 additions and 73 deletions

View file

@ -185,7 +185,7 @@ static void backend_destroy(struct wlr_backend *backend) {
wlr_output_destroy(&output->wlr_output);
}
wlr_keyboard_destroy(&x11->keyboard);
wlr_keyboard_finish(&x11->keyboard);
wlr_backend_finish(backend);
@ -637,7 +637,8 @@ struct wlr_backend *wlr_x11_backend_create(struct wl_display *display,
}
#endif
wlr_keyboard_init(&x11->keyboard, &x11_keyboard_impl, "x11-keyboard");
wlr_keyboard_init(&x11->keyboard, &x11_keyboard_impl,
x11_keyboard_impl.name);
x11->display_destroy.notify = handle_display_destroy;
wl_display_add_destroy_listener(display, &x11->display_destroy);