diff --git a/src/main.c b/src/main.c index 147a9e4a..d96a33be 100644 --- a/src/main.c +++ b/src/main.c @@ -228,11 +228,12 @@ main(int argc, char *argv[]) session_shutdown(&server); - server_finish(&server); - menu_finish(&server); theme_finish(&theme); rcxml_finish(); font_finish(); + + server_finish(&server); + return 0; } diff --git a/src/server.c b/src/server.c index 137f5eea..697caa5b 100644 --- a/src/server.c +++ b/src/server.c @@ -627,21 +627,20 @@ server_finish(struct server *server) { #if HAVE_XWAYLAND xwayland_server_finish(server); +#endif +#if HAVE_LIBSFDO + icon_loader_finish(server); #endif if (sighup_source) { wl_event_source_remove(sighup_source); } wl_display_destroy_clients(server->wl_display); - + wlr_allocator_destroy(server->allocator); + wlr_renderer_destroy(server->renderer); + wlr_backend_destroy(server->backend); seat_finish(server); - wl_display_destroy(server->wl_display); - - /* TODO: clean up various scene_tree nodes */ workspaces_destroy(server); - + wlr_scene_node_destroy(&server->scene->tree.node); + wl_display_destroy(server->wl_display); free(server->ssd_hover_state); - -#if HAVE_LIBSFDO - icon_loader_finish(server); -#endif }