From: Johan Malm Date: Fri, 24 Feb 2023 21:45:03 +0000 (+0000) Subject: Move common xdg/xwayland handle_destroy() code to view_destroy() X-Git-Url: https://git.mdlowis.com/?a=commitdiff_plain;h=6819dcee78e1e22e32a3bb30fc1a0ec843f2b133;p=proto%2Flabwc.git Move common xdg/xwayland handle_destroy() code to view_destroy() --- diff --git a/src/view.c b/src/view.c index 861fcbd7..9bd38757 100644 --- a/src/view.c +++ b/src/view.c @@ -1019,6 +1019,16 @@ view_destroy(struct view *view) struct server *server = view->server; bool need_cursor_update = false; + wl_list_remove(&view->map.link); + wl_list_remove(&view->unmap.link); + wl_list_remove(&view->request_move.link); + wl_list_remove(&view->request_resize.link); + wl_list_remove(&view->request_minimize.link); + wl_list_remove(&view->request_maximize.link); + wl_list_remove(&view->request_fullscreen.link); + wl_list_remove(&view->set_title.link); + wl_list_remove(&view->destroy.link); + if (view->toplevel.handle) { wlr_foreign_toplevel_handle_v1_destroy(view->toplevel.handle); } diff --git a/src/xdg.c b/src/xdg.c index 858e915b..ddf664c0 100644 --- a/src/xdg.c +++ b/src/xdg.c @@ -127,20 +127,10 @@ handle_destroy(struct wl_listener *listener, void *data) xdg_toplevel_view->xdg_surface->data = NULL; xdg_toplevel_view->xdg_surface = NULL; - wl_list_remove(&view->map.link); - wl_list_remove(&view->unmap.link); - wl_list_remove(&view->request_move.link); - wl_list_remove(&view->request_resize.link); - wl_list_remove(&view->request_minimize.link); - wl_list_remove(&view->request_maximize.link); - wl_list_remove(&view->request_fullscreen.link); - wl_list_remove(&view->set_title.link); - + /* Remove xdg-shell view specific listeners */ wl_list_remove(&xdg_toplevel_view->set_app_id.link); wl_list_remove(&xdg_toplevel_view->new_popup.link); - wl_list_remove(&view->destroy.link); - view_destroy(view); } diff --git a/src/xwayland.c b/src/xwayland.c index 104c92c9..db2e4a38 100644 --- a/src/xwayland.c +++ b/src/xwayland.c @@ -222,25 +222,13 @@ handle_destroy(struct wl_listener *listener, void *data) xwayland_view->xwayland_surface->data = NULL; xwayland_view->xwayland_surface = NULL; - /* Remove XWayland specific handlers */ - wl_list_remove(&view->map.link); - wl_list_remove(&view->unmap.link); - wl_list_remove(&view->request_move.link); - wl_list_remove(&view->request_resize.link); - wl_list_remove(&view->request_minimize.link); - wl_list_remove(&view->request_maximize.link); - wl_list_remove(&view->request_fullscreen.link); - wl_list_remove(&view->set_title.link); - + /* Remove XWayland view specific listeners */ wl_list_remove(&xwayland_view->request_activate.link); wl_list_remove(&xwayland_view->request_configure.link); wl_list_remove(&xwayland_view->set_app_id.link); wl_list_remove(&xwayland_view->set_decorations.link); wl_list_remove(&xwayland_view->override_redirect.link); - wl_list_remove(&view->destroy.link); - - /* And finally destroy / free the view */ view_destroy(view); }