From 87368dbc6609af497bf506f110af73696a4cc534 Mon Sep 17 00:00:00 2001 From: Harrison DiAmbrosio Date: Sun, 7 Dec 2025 19:03:37 -0500 Subject: [PATCH] basic layer keyboard --- src/LayerSurface.zig | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/LayerSurface.zig b/src/LayerSurface.zig index 770136d..395d1f5 100644 --- a/src/LayerSurface.zig +++ b/src/LayerSurface.zig @@ -70,6 +70,18 @@ pub fn deinit(self: *LayerSurface) void { gpa.destroy(self); } +pub fn allowKeyboard(self: *LayerSurface) void { + const keyboard_interactive = self.wlr_layer_surface.current.keyboard_interactive; + if(keyboard_interactive == .exclusive or keyboard_interactive == .on_demand) { + server.seat.wlr_seat.keyboardNotifyEnter( + self.wlr_layer_surface.surface, + &server.seat.wlr_seat.keyboard_state.keyboard.?.keycodes, + null + ); + } +} + +// --------- LayerSurface event handlers --------- fn handleDestroy( listener: *wl.Listener(*wlr.LayerSurfaceV1), _: *wlr.LayerSurfaceV1 @@ -79,9 +91,10 @@ fn handleDestroy( } fn handleMap( - _: *wl.Listener(void) + listener: *wl.Listener(void) ) void { - std.log.debug("Unimplemented layer surface map", .{}); + const layer: *LayerSurface = @fieldParentPtr("map", listener); + layer.allowKeyboard(); } fn handleUnmap(listener: *wl.Listener(void)) void {