mirror of
https://github.com/fairyglade/ly.git
synced 2026-05-13 18:40:46 +00:00
Improve keyboard handling (closes #982)
Signed-off-by: AnErrupTion <anerruption@disroot.org>
This commit is contained in:
@@ -171,6 +171,7 @@ pub fn getKeyList(allocator: Allocator, tb_event: termbox.tb_event) !KeyList {
|
|||||||
const code = if (tb_event.ch == 0 and tb_event.key < 128) tb_event.key else tb_event.ch;
|
const code = if (tb_event.ch == 0 and tb_event.key < 128) tb_event.key else tb_event.ch;
|
||||||
|
|
||||||
switch (code) {
|
switch (code) {
|
||||||
|
// Non-standard control codes
|
||||||
0 => {
|
0 => {
|
||||||
key.ctrl = true;
|
key.ctrl = true;
|
||||||
key.@"2" = true;
|
key.@"2" = true;
|
||||||
@@ -342,7 +343,9 @@ pub fn getKeyList(allocator: Allocator, tb_event: termbox.tb_event) !KeyList {
|
|||||||
key = std.mem.zeroes(Key);
|
key = std.mem.zeroes(Key);
|
||||||
key._ = true;
|
key._ = true;
|
||||||
},
|
},
|
||||||
|
// Standard ASCII characters
|
||||||
32 => {
|
32 => {
|
||||||
|
key = std.mem.zeroes(Key);
|
||||||
key.@" " = true;
|
key.@" " = true;
|
||||||
},
|
},
|
||||||
33 => {
|
33 => {
|
||||||
@@ -370,6 +373,7 @@ pub fn getKeyList(allocator: Allocator, tb_event: termbox.tb_event) !KeyList {
|
|||||||
key.@"&" = true;
|
key.@"&" = true;
|
||||||
},
|
},
|
||||||
39 => {
|
39 => {
|
||||||
|
key = std.mem.zeroes(Key);
|
||||||
key.@"'" = true;
|
key.@"'" = true;
|
||||||
},
|
},
|
||||||
40 => {
|
40 => {
|
||||||
@@ -389,74 +393,86 @@ pub fn getKeyList(allocator: Allocator, tb_event: termbox.tb_event) !KeyList {
|
|||||||
key.@"+" = true;
|
key.@"+" = true;
|
||||||
},
|
},
|
||||||
44 => {
|
44 => {
|
||||||
|
key = std.mem.zeroes(Key);
|
||||||
key.@"," = true;
|
key.@"," = true;
|
||||||
},
|
},
|
||||||
45 => {
|
45 => {
|
||||||
|
key = std.mem.zeroes(Key);
|
||||||
key.@"-" = true;
|
key.@"-" = true;
|
||||||
},
|
},
|
||||||
46 => {
|
46 => {
|
||||||
|
key = std.mem.zeroes(Key);
|
||||||
key.@"." = true;
|
key.@"." = true;
|
||||||
},
|
},
|
||||||
47 => {
|
47 => {
|
||||||
|
key = std.mem.zeroes(Key);
|
||||||
key.@"/" = true;
|
key.@"/" = true;
|
||||||
},
|
},
|
||||||
48 => {
|
48 => {
|
||||||
|
key = std.mem.zeroes(Key);
|
||||||
key.@"0" = true;
|
key.@"0" = true;
|
||||||
},
|
},
|
||||||
49 => {
|
49 => {
|
||||||
|
key = std.mem.zeroes(Key);
|
||||||
key.@"1" = true;
|
key.@"1" = true;
|
||||||
},
|
},
|
||||||
50 => {
|
50 => {
|
||||||
|
key = std.mem.zeroes(Key);
|
||||||
key.@"2" = true;
|
key.@"2" = true;
|
||||||
},
|
},
|
||||||
51 => {
|
51 => {
|
||||||
|
key = std.mem.zeroes(Key);
|
||||||
key.@"3" = true;
|
key.@"3" = true;
|
||||||
},
|
},
|
||||||
52 => {
|
52 => {
|
||||||
|
key = std.mem.zeroes(Key);
|
||||||
key.@"4" = true;
|
key.@"4" = true;
|
||||||
},
|
},
|
||||||
53 => {
|
53 => {
|
||||||
|
key = std.mem.zeroes(Key);
|
||||||
key.@"5" = true;
|
key.@"5" = true;
|
||||||
},
|
},
|
||||||
54 => {
|
54 => {
|
||||||
|
key = std.mem.zeroes(Key);
|
||||||
key.@"6" = true;
|
key.@"6" = true;
|
||||||
},
|
},
|
||||||
55 => {
|
55 => {
|
||||||
|
key = std.mem.zeroes(Key);
|
||||||
key.@"7" = true;
|
key.@"7" = true;
|
||||||
},
|
},
|
||||||
56 => {
|
56 => {
|
||||||
|
key = std.mem.zeroes(Key);
|
||||||
key.@"8" = true;
|
key.@"8" = true;
|
||||||
},
|
},
|
||||||
57 => {
|
57 => {
|
||||||
|
key = std.mem.zeroes(Key);
|
||||||
key.@"9" = true;
|
key.@"9" = true;
|
||||||
},
|
},
|
||||||
58 => {
|
58 => {
|
||||||
key.shift = true;
|
key = std.mem.zeroes(Key);
|
||||||
key.@":" = true;
|
key.@":" = true;
|
||||||
},
|
},
|
||||||
59 => {
|
59 => {
|
||||||
|
key = std.mem.zeroes(Key);
|
||||||
key.@";" = true;
|
key.@";" = true;
|
||||||
},
|
},
|
||||||
60 => {
|
60 => {
|
||||||
key.shift = true;
|
key = std.mem.zeroes(Key);
|
||||||
key.@"<" = true;
|
key.@"<" = true;
|
||||||
},
|
},
|
||||||
61 => {
|
61 => {
|
||||||
|
key = std.mem.zeroes(Key);
|
||||||
key.@"=" = true;
|
key.@"=" = true;
|
||||||
},
|
},
|
||||||
62 => {
|
62 => {
|
||||||
key.shift = true;
|
key = std.mem.zeroes(Key);
|
||||||
key.@">" = true;
|
key.@">" = true;
|
||||||
},
|
},
|
||||||
63 => {
|
63 => {
|
||||||
key.shift = true;
|
key = std.mem.zeroes(Key);
|
||||||
key.@"?" = true;
|
key.@"?" = true;
|
||||||
},
|
},
|
||||||
64 => {
|
64 => {
|
||||||
key.shift = true;
|
|
||||||
key.@"2" = true;
|
|
||||||
try keys.append(allocator, key);
|
|
||||||
|
|
||||||
key = std.mem.zeroes(Key);
|
key = std.mem.zeroes(Key);
|
||||||
key.@"@" = true;
|
key.@"@" = true;
|
||||||
},
|
},
|
||||||
@@ -565,12 +581,15 @@ pub fn getKeyList(allocator: Allocator, tb_event: termbox.tb_event) !KeyList {
|
|||||||
key.z = true;
|
key.z = true;
|
||||||
},
|
},
|
||||||
91 => {
|
91 => {
|
||||||
|
key = std.mem.zeroes(Key);
|
||||||
key.@"[" = true;
|
key.@"[" = true;
|
||||||
},
|
},
|
||||||
92 => {
|
92 => {
|
||||||
|
key = std.mem.zeroes(Key);
|
||||||
key.@"\\" = true;
|
key.@"\\" = true;
|
||||||
},
|
},
|
||||||
93 => {
|
93 => {
|
||||||
|
key = std.mem.zeroes(Key);
|
||||||
key.@"]" = true;
|
key.@"]" = true;
|
||||||
},
|
},
|
||||||
94 => {
|
94 => {
|
||||||
@@ -578,14 +597,11 @@ pub fn getKeyList(allocator: Allocator, tb_event: termbox.tb_event) !KeyList {
|
|||||||
key.@"^" = true;
|
key.@"^" = true;
|
||||||
},
|
},
|
||||||
95 => {
|
95 => {
|
||||||
key.shift = true;
|
|
||||||
key.@"-" = true;
|
|
||||||
try keys.append(allocator, key);
|
|
||||||
|
|
||||||
key = std.mem.zeroes(Key);
|
key = std.mem.zeroes(Key);
|
||||||
key._ = true;
|
key._ = true;
|
||||||
},
|
},
|
||||||
96 => {
|
96 => {
|
||||||
|
key = std.mem.zeroes(Key);
|
||||||
key.@"`" = true;
|
key.@"`" = true;
|
||||||
},
|
},
|
||||||
97 => {
|
97 => {
|
||||||
@@ -667,34 +683,21 @@ pub fn getKeyList(allocator: Allocator, tb_event: termbox.tb_event) !KeyList {
|
|||||||
key.z = true;
|
key.z = true;
|
||||||
},
|
},
|
||||||
123 => {
|
123 => {
|
||||||
key.shift = true;
|
|
||||||
key.@"{" = true;
|
key.@"{" = true;
|
||||||
},
|
},
|
||||||
124 => {
|
124 => {
|
||||||
key.shift = true;
|
|
||||||
key.@"\\" = true;
|
|
||||||
try keys.append(allocator, key);
|
|
||||||
|
|
||||||
key = std.mem.zeroes(Key);
|
key = std.mem.zeroes(Key);
|
||||||
key.@"|" = true;
|
key.@"|" = true;
|
||||||
},
|
},
|
||||||
125 => {
|
125 => {
|
||||||
key.shift = true;
|
key = std.mem.zeroes(Key);
|
||||||
key.@"}" = true;
|
key.@"}" = true;
|
||||||
},
|
},
|
||||||
126 => {
|
126 => {
|
||||||
key.shift = true;
|
|
||||||
key.@"`" = true;
|
|
||||||
try keys.append(allocator, key);
|
|
||||||
|
|
||||||
key = std.mem.zeroes(Key);
|
key = std.mem.zeroes(Key);
|
||||||
key.@"~" = true;
|
key.@"~" = true;
|
||||||
},
|
},
|
||||||
127 => {
|
127 => {
|
||||||
key.ctrl = true;
|
|
||||||
key.@"8" = true;
|
|
||||||
try keys.append(allocator, key);
|
|
||||||
|
|
||||||
key = std.mem.zeroes(Key);
|
key = std.mem.zeroes(Key);
|
||||||
key.backspace = true;
|
key.backspace = true;
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user