Move common xdg/xwayland handle_destroy() code to view_destroy()

This commit is contained in:
Johan Malm 2023-02-24 21:45:03 +00:00 committed by Consolatis
parent ecbe699f94
commit 6819dcee78
3 changed files with 12 additions and 24 deletions

View file

@ -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);
}

View file

@ -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);
}

View file

@ -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);
}