apprt/embedded: ctrl-only should use binding-mods only

This allows it to ignore control side differences.
This commit is contained in:
Mitchell Hashimoto
2024-01-27 11:14:16 -08:00
parent 79d936e8e4
commit 0726a8d1fa
2 changed files with 6 additions and 1 deletions

View File

@ -780,7 +780,7 @@ pub const Surface = struct {
// we just avoid this by never allowing AppKit to translate // we just avoid this by never allowing AppKit to translate
// ctrl+<char> and instead do it ourselves. // ctrl+<char> and instead do it ourselves.
const ctrl_only = comptime (input.Mods{ .ctrl = true }).int(); const ctrl_only = comptime (input.Mods{ .ctrl = true }).int();
break :event_text if (mods.int() == ctrl_only) null else event.text; break :event_text if (mods.binding().int() == ctrl_only) null else event.text;
}; };
// Translate our key using the keymap for our localized keyboard layout. // Translate our key using the keymap for our localized keyboard layout.

View File

@ -1895,6 +1895,11 @@ test "ctrlseq: normal ctrl c" {
try testing.expectEqual(@as(u8, 0x03), seq.?); try testing.expectEqual(@as(u8, 0x03), seq.?);
} }
test "ctrlseq: normal ctrl c, right control" {
const seq = ctrlSeq("c", .{ .ctrl = true, .sides = .{ .ctrl = .right } });
try testing.expectEqual(@as(u8, 0x03), seq.?);
}
test "ctrlseq: alt should be allowed" { test "ctrlseq: alt should be allowed" {
const seq = ctrlSeq("c", .{ .alt = true, .ctrl = true }); const seq = ctrlSeq("c", .{ .alt = true, .ctrl = true });
try testing.expectEqual(@as(u8, 0x03), seq.?); try testing.expectEqual(@as(u8, 0x03), seq.?);