feat(tray): 实现 tray_cleanup 并在 backend_destroy 中调用以释放托盘资源
This commit is contained in:
@@ -195,6 +195,8 @@ backend_t *backend_create(const char *display_name) {
|
||||
void backend_destroy(backend_t *backend) {
|
||||
if (!backend) return;
|
||||
|
||||
tray_cleanup(backend);
|
||||
|
||||
p_delete(&backend->config_list.cfgs);
|
||||
p_clear(&backend->config_list, 1);
|
||||
|
||||
|
||||
@@ -243,3 +243,12 @@ void tray_init(
|
||||
tray_broadcast_manager(tray, backend);
|
||||
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);
|
||||
}
|
||||
|
||||
@@ -15,3 +15,4 @@ void tray_init(
|
||||
int32_t host_width,
|
||||
int32_t host_height
|
||||
);
|
||||
void tray_cleanup(backend_t *backend);
|
||||
|
||||
Reference in New Issue
Block a user