From 15b582243cf25215b9e544e67b96677848bb5b77 Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Wed, 14 Jan 2026 11:03:46 +0100 Subject: [PATCH] fix: ignore modifiers on all modifier keys This allows combining of modifier key event keybindings without having to bind all modifier combinations. ie. with this we can use fast_scroll and jump_mode at the same time by holding both modifiers down. --- src/keybind/keybind.zig | 3 +++ src/renderer/vaxis/input.zig | 9 +++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/keybind/keybind.zig b/src/keybind/keybind.zig index 31d58d9..cd182f8 100644 --- a/src/keybind/keybind.zig +++ b/src/keybind/keybind.zig @@ -717,6 +717,9 @@ const BindingSet = struct { const mods = switch (key_event.key) { input.key.left_control, input.key.right_control => 0, input.key.left_alt, input.key.right_alt => 0, + input.key.left_shift, input.key.right_shift => 0, + input.key.left_super, input.key.right_super => 0, + input.key.iso_level_3_shift, input.key.iso_level_5_shift => 0, else => switch (mode_flag) { .ignore_alt_text_modifiers => if (std.mem.eql(u8, text, codepoint)) key_event.modifiers else 0, .normal => key_event.modifiers, diff --git a/src/renderer/vaxis/input.zig b/src/renderer/vaxis/input.zig index d357cc8..68098f9 100644 --- a/src/renderer/vaxis/input.zig +++ b/src/renderer/vaxis/input.zig @@ -126,10 +126,11 @@ pub const KeyEvent = struct { modifiers: Mods, ) @This() { const mods_ = switch (keypress_) { - key.left_super, key.right_super => modifiers & ~mod.super, - key.left_shift, key.right_shift => modifiers & ~mod.shift, - key.left_control, key.right_control => modifiers & ~mod.ctrl, - key.left_alt, key.right_alt => modifiers & ~mod.alt, + key.left_control, key.right_control => 0, + key.left_alt, key.right_alt => 0, + key.left_shift, key.right_shift => 0, + key.left_super, key.right_super => 0, + key.iso_level_3_shift, key.iso_level_5_shift => 0, else => modifiers, };