From 3b6685c25f73c1628b06d4b0d33b77ca17098076 Mon Sep 17 00:00:00 2001 From: Squibid Date: Sun, 26 Oct 2025 22:52:05 -0400 Subject: [PATCH] make keybind handling much much safer --- src/keyboard.zig | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/keyboard.zig b/src/keyboard.zig index 984f96d..a360ce0 100644 --- a/src/keyboard.zig +++ b/src/keyboard.zig @@ -77,14 +77,16 @@ fn handleKey(_: *wl.Listener(*wlr.Keyboard.event.Key), event: *wlr.Keyboard.even var handled = false; const modifiers = server.seat.keyboard_group.keyboard.getModifiers(); - for (server.seat.keyboard_group.keyboard.xkb_state.?.keyGetSyms(keycode)) |sym| { - if (server.keymaps.get(Keymap.hash(modifiers, sym))) |map| { - if (event.state == .pressed and map.lua_press_ref_idx > 0) { - map.callback(false); - handled = true; - } else if (event.state == .released and map.lua_release_ref_idx > 0) { - map.callback(true); - handled = true; + if (server.seat.keyboard_group.keyboard.xkb_state) |xkb_state| { + for (xkb_state.keyGetSyms(keycode)) |sym| { + if (server.keymaps.get(Keymap.hash(modifiers, sym))) |map| { + if (event.state == .pressed and map.lua_press_ref_idx > 0) { + map.callback(false); + handled = true; + } else if (event.state == .released and map.lua_release_ref_idx > 0) { + map.callback(true); + handled = true; + } } } }