aboutsummaryrefslogtreecommitdiff
path: root/src/wl/callback.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/wl/callback.zig')
-rw-r--r--src/wl/callback.zig19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/wl/callback.zig b/src/wl/callback.zig
index 0e7ea5b..c17e190 100644
--- a/src/wl/callback.zig
+++ b/src/wl/callback.zig
@@ -9,23 +9,26 @@ const Self = @This();
pub const Events = wayland.EventSet(Self, .{done});
is_done: *bool,
-interface: wayland.Object,
+handle: wayland.Object.Ref,
pub fn init(
self: *Self,
- allocator: std.mem.Allocator,
- display: *wl.Display,
+ ctx: *wayland.Context,
is_done: *bool,
) !void {
self.is_done = is_done;
- self.interface = wayland.Object.from_self(self);
- try display.registry.add_object(allocator, &self.interface);
- std.debug.print("ids {any}\n", .{display.registry.objects.items});
- std.debug.print("callback #{?}\n", .{self.interface.id});
- try display.request(display, .{ .sync = .{&self.interface} });
+ self.handle = try ctx.display.registry.add_object(
+ ctx.allocator,
+ wayland.Object.from_self(self),
+ );
+ try ctx.display.request(ctx.display, .{ .sync = .{self.handle} });
}
+pub fn deinit(self: *Self, ctx: *wayland.Context) void {
+ ctx.display.registry.disable_object(self.handle);
+}
+
fn done(self: *Self, ctx: *wayland.Context, value: u32) void {
_ = value;
_ = ctx;