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) {
|
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);
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user