make keybind handling much much safer

This commit is contained in:
Squibid 2025-10-26 22:52:05 -04:00
parent 78da941645
commit 3b6685c25f

View file

@ -77,14 +77,16 @@ fn handleKey(_: *wl.Listener(*wlr.Keyboard.event.Key), event: *wlr.Keyboard.even
var handled = false; var handled = false;
const modifiers = server.seat.keyboard_group.keyboard.getModifiers(); const modifiers = server.seat.keyboard_group.keyboard.getModifiers();
for (server.seat.keyboard_group.keyboard.xkb_state.?.keyGetSyms(keycode)) |sym| { if (server.seat.keyboard_group.keyboard.xkb_state) |xkb_state| {
if (server.keymaps.get(Keymap.hash(modifiers, sym))) |map| { for (xkb_state.keyGetSyms(keycode)) |sym| {
if (event.state == .pressed and map.lua_press_ref_idx > 0) { if (server.keymaps.get(Keymap.hash(modifiers, sym))) |map| {
map.callback(false); if (event.state == .pressed and map.lua_press_ref_idx > 0) {
handled = true; map.callback(false);
} else if (event.state == .released and map.lua_release_ref_idx > 0) { handled = true;
map.callback(true); } else if (event.state == .released and map.lua_release_ref_idx > 0) {
handled = true; map.callback(true);
handled = true;
}
} }
} }
} }