deinit
Parameters
- self:*AccessKit
- *AccessKit
Source
Implementation
pub fn deinit(self: *AccessKit) void {
if (!dvui.accesskit_enabled) return;
const io = dvui.io;
self.mutex.lockUncancelable(io);
defer self.mutex.unlock(io);
if (self.adapter == null) return;
const window: *dvui.Window = @alignCast(@fieldParentPtr("accesskit", self));
self.action_requests.clearAndFree(window.gpa);
self.nodes.clearAndFree(window.gpa);
self.text_runs.clearAndFree(window.gpa);
if (builtin.os.tag == .windows)
if (dvui.backend.kind == .dx11) {
c.accesskit_windows_adapter_free(self.adapter.?);
} else {
c.accesskit_windows_subclassing_adapter_free(self.adapter.?);
}
else if (builtin.os.tag.isDarwin())
c.accesskit_macos_subclassing_adapter_free(self.adapter.?)
else if (builtin.os.tag == .linux)
c.accesskit_unix_adapter_free(self.adapter.?);
}