From 7dc4a3ecd71cf41dd1800c6afd3b16c83a90f031 Mon Sep 17 00:00:00 2001 From: Simon Zeni Date: Tue, 1 Mar 2022 14:49:30 -0500 Subject: 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. --- backend/x11/backend.c | 5 +++-- backend/x11/input_device.c | 6 +----- 2 files changed, 4 insertions(+), 7 deletions(-) (limited to 'backend/x11') diff --git a/backend/x11/backend.c b/backend/x11/backend.c index 64bcf475..dbbd74e8 100644 --- a/backend/x11/backend.c +++ b/backend/x11/backend.c @@ -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); diff --git a/backend/x11/input_device.c b/backend/x11/input_device.c index f87f53a0..3bbbe594 100644 --- a/backend/x11/input_device.c +++ b/backend/x11/input_device.c @@ -285,12 +285,8 @@ void handle_x11_xinput_event(struct wlr_x11_backend *x11, } } -static void keyboard_destroy(struct wlr_keyboard *wlr_keyboard) { - // Don't free the keyboard, it's on the stack -} - const struct wlr_keyboard_impl x11_keyboard_impl = { - .destroy = keyboard_destroy, + .name = "x11-keyboard", }; static void pointer_destroy(struct wlr_pointer *wlr_pointer) { -- cgit v1.2.3