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

@ -15,7 +15,7 @@
void destroy_libinput_input_device(struct wlr_libinput_input_device *dev) {
if (dev->keyboard.impl) {
wlr_keyboard_destroy(&dev->keyboard);
wlr_keyboard_finish(&dev->keyboard);
}
if (dev->pointer.impl) {
wlr_pointer_destroy(&dev->pointer);

View file

@ -17,12 +17,8 @@ static void keyboard_set_leds(struct wlr_keyboard *wlr_kb, uint32_t leds) {
libinput_device_led_update(dev->handle, leds);
}
static void keyboard_destroy(struct wlr_keyboard *wlr_kb) {
/* wlr_keyboard belongs to the wlr_libinput_input_device */
}
const struct wlr_keyboard_impl libinput_keyboard_impl = {
.destroy = keyboard_destroy,
.name = "libinput-keyboard",
.led_update = keyboard_set_leds
};