feat(tray): 实现 tray_cleanup 并在 backend_destroy 中调用以释放托盘资源

This commit is contained in:
2026-07-25 01:07:49 +08:00
parent e7a0945a93
commit 3c5cfd3ead
3 changed files with 12 additions and 0 deletions

View File

@@ -195,6 +195,8 @@ backend_t *backend_create(const char *display_name) {
void backend_destroy(backend_t *backend) { void backend_destroy(backend_t *backend) {
if (!backend) return; if (!backend) return;
tray_cleanup(backend);
p_delete(&backend->config_list.cfgs); p_delete(&backend->config_list.cfgs);
p_clear(&backend->config_list, 1); p_clear(&backend->config_list, 1);

View File

@@ -243,3 +243,12 @@ void tray_init(
tray_broadcast_manager(tray, backend); tray_broadcast_manager(tray, backend);
xcb_flush(backend->conn); xcb_flush(backend->conn);
} }
void tray_cleanup(backend_t *backend) {
auto conn = backend->conn;
auto tray = backend->tray;
xcb_destroy_window(conn, tray->container);
p_clear(backend->tray, 1);
p_delete(&backend->tray);
}

View File

@@ -15,3 +15,4 @@ void tray_init(
int32_t host_width, int32_t host_width,
int32_t host_height int32_t host_height
); );
void tray_cleanup(backend_t *backend);