From d9b949d8b9a194de49decc51f53e4eb9a282f8b7 Mon Sep 17 00:00:00 2001 From: Pekka Paalanen Date: Fri, 21 May 2021 17:26:31 +0300 Subject: [PATCH] keyboard: free stuff on exit This fixes a bunch of leaks when trying to run a Weston test with desktop-shell, which spawns weston-keyboard. Signed-off-by: Pekka Paalanen --- clients/keyboard.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/clients/keyboard.c b/clients/keyboard.c index e39d76dd..0eedbe75 100644 --- a/clients/keyboard.c +++ b/clients/keyboard.c @@ -1011,6 +1011,20 @@ keyboard_create(struct virtual_keyboard *virtual_keyboard) display_output_handler); } +static void +keyboard_destroy(struct virtual_keyboard *virtual_keyboard) +{ + if (virtual_keyboard->input_panel) + zwp_input_panel_v1_destroy(virtual_keyboard->input_panel); + + if (virtual_keyboard->input_method) + zwp_input_method_v1_destroy(virtual_keyboard->input_method); + + widget_destroy(virtual_keyboard->keyboard->widget); + window_destroy(virtual_keyboard->keyboard->window); + free(virtual_keyboard->keyboard); +} + int main(int argc, char *argv[]) { @@ -1037,5 +1051,8 @@ main(int argc, char *argv[]) display_run(virtual_keyboard.display); + keyboard_destroy(&virtual_keyboard); + display_destroy(virtual_keyboard.display); + return 0; }