From c4c0880effe2ab8fe4b3261a3fa759450fb6ad4f Mon Sep 17 00:00:00 2001 From: Louis Pearson Date: Sun, 14 Jan 2024 23:25:01 -0700 Subject: [PATCH] feat: example 01: commit after configure, respond to ping --- examples/01_client_connect.zig | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/examples/01_client_connect.zig b/examples/01_client_connect.zig index 77a2027..da2e973 100644 --- a/examples/01_client_connect.zig +++ b/examples/01_client_connect.zig @@ -370,6 +370,16 @@ pub fn main() !void { } }, ); try socket.writeAll(std.mem.sliceAsBytes(message)); + + // commit the configuration + var buffer2: [10]u32 = undefined; + const message2 = try wayland.serialize( + wayland.core.Surface.Request, + &buffer2, + surface_id, + wayland.core.Surface.Request.commit, + ); + try socket.writeAll(std.mem.sliceAsBytes(message2)); }, } } else if (header.object_id == xdg_toplevel_id) { @@ -384,6 +394,22 @@ pub fn main() !void { } else if (header.object_id == wl_buffer_id) { const event = try wayland.deserialize(wayland.core.Buffer.Event, header, message_buffer.items); std.debug.print("<- wl_buffer@{} {}\n", .{ header.object_id, event }); + } else if (header.object_id == xdg_wm_base_id) { + const event = try wayland.deserialize(wayland.xdg.WmBase.Event, header, message_buffer.items); + switch (event) { + .ping => |ping| { + var buffer: [10]u32 = undefined; + const message = try wayland.serialize( + wayland.xdg.WmBase.Request, + &buffer, + xdg_wm_base_id, + .{ .pong = .{ + .serial = ping.serial, + } }, + ); + try socket.writeAll(std.mem.sliceAsBytes(message)); + }, + } } else if (header.object_id == 1) { const event = try wayland.deserialize(wayland.core.Display.Event, header, message_buffer.items); switch (event) {