Skip to content

Commit b1f5538

Browse files
authored
Update AltGr handling to accept Ctrl+Alt, add Norwegian keyboard layout (#34)
* Update AltGr handling to accept Ctrl+Alt * Add Norwegian keyboard layout
1 parent 90a48f1 commit b1f5538

File tree

6 files changed

+270
-25
lines changed

6 files changed

+270
-25
lines changed

src/layouts/azerty.rs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ impl KeyboardLayout for Azerty {
3737
KeyCode::Key2 => {
3838
if modifiers.is_shifted() {
3939
DecodedKey::Unicode('2')
40-
} else if modifiers.alt_gr {
40+
} else if modifiers.is_altgr() {
4141
DecodedKey::Unicode('~')
4242
} else {
4343
DecodedKey::Unicode('é')
@@ -46,7 +46,7 @@ impl KeyboardLayout for Azerty {
4646
KeyCode::Key3 => {
4747
if modifiers.is_shifted() {
4848
DecodedKey::Unicode('3')
49-
} else if modifiers.alt_gr {
49+
} else if modifiers.is_altgr() {
5050
DecodedKey::Unicode('#')
5151
} else {
5252
DecodedKey::Unicode('"')
@@ -55,7 +55,7 @@ impl KeyboardLayout for Azerty {
5555
KeyCode::Key4 => {
5656
if modifiers.is_shifted() {
5757
DecodedKey::Unicode('4')
58-
} else if modifiers.alt_gr {
58+
} else if modifiers.is_altgr() {
5959
DecodedKey::Unicode('{')
6060
} else {
6161
DecodedKey::Unicode('\'')
@@ -64,7 +64,7 @@ impl KeyboardLayout for Azerty {
6464
KeyCode::Key5 => {
6565
if modifiers.is_shifted() {
6666
DecodedKey::Unicode('5')
67-
} else if modifiers.alt_gr {
67+
} else if modifiers.is_altgr() {
6868
DecodedKey::Unicode('[')
6969
} else {
7070
DecodedKey::Unicode('(')
@@ -73,7 +73,7 @@ impl KeyboardLayout for Azerty {
7373
KeyCode::Key6 => {
7474
if modifiers.is_shifted() {
7575
DecodedKey::Unicode('6')
76-
} else if modifiers.alt_gr {
76+
} else if modifiers.is_altgr() {
7777
DecodedKey::Unicode('|')
7878
} else {
7979
DecodedKey::Unicode('-')
@@ -82,7 +82,7 @@ impl KeyboardLayout for Azerty {
8282
KeyCode::Key7 => {
8383
if modifiers.is_shifted() {
8484
DecodedKey::Unicode('7')
85-
} else if modifiers.alt_gr {
85+
} else if modifiers.is_altgr() {
8686
DecodedKey::Unicode('`')
8787
} else {
8888
DecodedKey::Unicode('è')
@@ -91,7 +91,7 @@ impl KeyboardLayout for Azerty {
9191
KeyCode::Key8 => {
9292
if modifiers.is_shifted() {
9393
DecodedKey::Unicode('8')
94-
} else if modifiers.alt_gr {
94+
} else if modifiers.is_altgr() {
9595
DecodedKey::Unicode('\\')
9696
} else {
9797
DecodedKey::Unicode('_')
@@ -100,7 +100,7 @@ impl KeyboardLayout for Azerty {
100100
KeyCode::Key9 => {
101101
if modifiers.is_shifted() {
102102
DecodedKey::Unicode('9')
103-
} else if modifiers.alt_gr {
103+
} else if modifiers.is_altgr() {
104104
DecodedKey::Unicode('^')
105105
} else {
106106
DecodedKey::Unicode('ç')
@@ -109,7 +109,7 @@ impl KeyboardLayout for Azerty {
109109
KeyCode::Key0 => {
110110
if modifiers.is_shifted() {
111111
DecodedKey::Unicode('0')
112-
} else if modifiers.alt_gr {
112+
} else if modifiers.is_altgr() {
113113
DecodedKey::Unicode('@')
114114
} else {
115115
DecodedKey::Unicode('à')
@@ -118,7 +118,7 @@ impl KeyboardLayout for Azerty {
118118
KeyCode::OemMinus => {
119119
if modifiers.is_shifted() {
120120
DecodedKey::Unicode('°')
121-
} else if modifiers.alt_gr {
121+
} else if modifiers.is_altgr() {
122122
DecodedKey::Unicode(']')
123123
} else {
124124
DecodedKey::Unicode(')')
@@ -127,7 +127,7 @@ impl KeyboardLayout for Azerty {
127127
KeyCode::OemPlus => {
128128
if modifiers.is_shifted() {
129129
DecodedKey::Unicode('+')
130-
} else if modifiers.alt_gr {
130+
} else if modifiers.is_altgr() {
131131
DecodedKey::Unicode('}')
132132
} else {
133133
DecodedKey::Unicode('=')
@@ -228,7 +228,7 @@ impl KeyboardLayout for Azerty {
228228
KeyCode::Oem4 => {
229229
if modifiers.is_shifted() {
230230
DecodedKey::Unicode('¨')
231-
} else if modifiers.alt_gr {
231+
} else if modifiers.is_altgr() {
232232
DecodedKey::Unicode('ˇ')
233233
} else {
234234
DecodedKey::Unicode('^')
@@ -237,7 +237,7 @@ impl KeyboardLayout for Azerty {
237237
KeyCode::Oem6 => {
238238
if modifiers.is_shifted() {
239239
DecodedKey::Unicode('£')
240-
} else if modifiers.alt_gr {
240+
} else if modifiers.is_altgr() {
241241
DecodedKey::Unicode('¤')
242242
} else {
243243
DecodedKey::Unicode('$')

src/layouts/de105.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ impl KeyboardLayout for De105Key {
115115
KeyCode::Q => {
116116
if map_to_unicode && modifiers.is_ctrl() {
117117
DecodedKey::Unicode('\u{0011}')
118-
} else if modifiers.alt_gr {
118+
} else if modifiers.is_altgr() {
119119
DecodedKey::Unicode('@')
120120
} else if modifiers.is_caps() {
121121
DecodedKey::Unicode('Q')
@@ -126,7 +126,7 @@ impl KeyboardLayout for De105Key {
126126
KeyCode::E => {
127127
if map_to_unicode && modifiers.is_ctrl() {
128128
DecodedKey::Unicode('\u{0005}')
129-
} else if modifiers.alt_gr {
129+
} else if modifiers.is_altgr() {
130130
DecodedKey::Unicode('€')
131131
} else if modifiers.is_caps() {
132132
DecodedKey::Unicode('E')
@@ -151,7 +151,7 @@ impl KeyboardLayout for De105Key {
151151
}
152152
}
153153
KeyCode::Oem6 => {
154-
if modifiers.alt_gr {
154+
if modifiers.is_altgr() {
155155
DecodedKey::Unicode('~')
156156
} else if modifiers.is_caps() {
157157
DecodedKey::Unicode('*')
@@ -214,7 +214,7 @@ impl KeyboardLayout for De105Key {
214214
KeyCode::Oem5 => {
215215
if modifiers.is_shifted() {
216216
DecodedKey::Unicode('>')
217-
} else if modifiers.alt_gr {
217+
} else if modifiers.is_altgr() {
218218
DecodedKey::Unicode('|')
219219
} else {
220220
DecodedKey::Unicode('<')

src/layouts/mod.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ pub use self::colemak::Colemak;
2828
mod de105;
2929
pub use self::de105::De105Key;
3030

31+
mod no105;
32+
pub use self::no105::No105Key;
33+
3134
/// A enum of all the supported keyboard layouts.
3235
pub enum AnyLayout {
3336
DVP104Key(DVP104Key),
@@ -38,6 +41,7 @@ pub enum AnyLayout {
3841
Azerty(Azerty),
3942
Colemak(Colemak),
4043
De105Key(De105Key),
44+
No105Key(No105Key),
4145
}
4246

4347
impl super::KeyboardLayout for AnyLayout {
@@ -56,6 +60,7 @@ impl super::KeyboardLayout for AnyLayout {
5660
AnyLayout::Azerty(inner) => inner.map_keycode(keycode, modifiers, handle_ctrl),
5761
AnyLayout::Colemak(inner) => inner.map_keycode(keycode, modifiers, handle_ctrl),
5862
AnyLayout::De105Key(inner) => inner.map_keycode(keycode, modifiers, handle_ctrl),
63+
AnyLayout::No105Key(inner) => inner.map_keycode(keycode, modifiers, handle_ctrl),
5964
}
6065
}
6166
}
@@ -76,6 +81,7 @@ impl super::KeyboardLayout for &AnyLayout {
7681
AnyLayout::Azerty(inner) => inner.map_keycode(keycode, modifiers, handle_ctrl),
7782
AnyLayout::Colemak(inner) => inner.map_keycode(keycode, modifiers, handle_ctrl),
7883
AnyLayout::De105Key(inner) => inner.map_keycode(keycode, modifiers, handle_ctrl),
84+
AnyLayout::No105Key(inner) => inner.map_keycode(keycode, modifiers, handle_ctrl),
7985
}
8086
}
8187
}

0 commit comments

Comments
 (0)