Skip to content

Commit 270162d

Browse files
committed
Ensure modifiers are passed through.
Closes #29.
1 parent e032488 commit 270162d

File tree

2 files changed

+38
-17
lines changed

2 files changed

+38
-17
lines changed

src/layouts/azerty.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -553,7 +553,7 @@ mod test {
553553
);
554554
assert_eq!(
555555
k.process_keyevent(KeyEvent::new(KeyCode::NumpadLock, KeyState::Down)),
556-
None
556+
Some(DecodedKey::RawKey(KeyCode::NumpadLock))
557557
);
558558
assert_eq!(
559559
k.process_keyevent(KeyEvent::new(KeyCode::NumpadLock, KeyState::Up)),

src/lib.rs

Lines changed: 37 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -673,14 +673,14 @@ where
673673
state: KeyState::Down,
674674
} => {
675675
self.modifiers.lshift = true;
676-
None
676+
Some(DecodedKey::RawKey(KeyCode::LShift))
677677
}
678678
KeyEvent {
679679
code: KeyCode::RShift,
680680
state: KeyState::Down,
681681
} => {
682682
self.modifiers.rshift = true;
683-
None
683+
Some(DecodedKey::RawKey(KeyCode::RShift))
684684
}
685685
KeyEvent {
686686
code: KeyCode::LShift,
@@ -701,7 +701,7 @@ where
701701
state: KeyState::Down,
702702
} => {
703703
self.modifiers.capslock = !self.modifiers.capslock;
704-
None
704+
Some(DecodedKey::RawKey(KeyCode::CapsLock))
705705
}
706706
KeyEvent {
707707
code: KeyCode::NumpadLock,
@@ -714,15 +714,15 @@ where
714714
} else {
715715
// It's a numlock toggle
716716
self.modifiers.numlock = !self.modifiers.numlock;
717-
None
717+
Some(DecodedKey::RawKey(KeyCode::NumpadLock))
718718
}
719719
}
720720
KeyEvent {
721721
code: KeyCode::LControl,
722722
state: KeyState::Down,
723723
} => {
724724
self.modifiers.lctrl = true;
725-
None
725+
Some(DecodedKey::RawKey(KeyCode::LControl))
726726
}
727727
KeyEvent {
728728
code: KeyCode::LControl,
@@ -736,7 +736,7 @@ where
736736
state: KeyState::Down,
737737
} => {
738738
self.modifiers.rctrl = true;
739-
None
739+
Some(DecodedKey::RawKey(KeyCode::RControl))
740740
}
741741
KeyEvent {
742742
code: KeyCode::RControl,
@@ -750,7 +750,7 @@ where
750750
state: KeyState::Down,
751751
} => {
752752
self.modifiers.alt_gr = true;
753-
None
753+
Some(DecodedKey::RawKey(KeyCode::RAltGr))
754754
}
755755
KeyEvent {
756756
code: KeyCode::RAltGr,
@@ -764,7 +764,7 @@ where
764764
state: KeyState::Down,
765765
} => {
766766
self.modifiers.rctrl2 = true;
767-
None
767+
Some(DecodedKey::RawKey(KeyCode::RControl2))
768768
}
769769
KeyEvent {
770770
code: KeyCode::RControl2,
@@ -1019,7 +1019,10 @@ mod test {
10191019
);
10201020
let test_sequence = [
10211021
// A with left shift held
1022-
(KeyEvent::new(KeyCode::LShift, KeyState::Down), None),
1022+
(
1023+
KeyEvent::new(KeyCode::LShift, KeyState::Down),
1024+
Some(DecodedKey::RawKey(KeyCode::LShift)),
1025+
),
10231026
(
10241027
KeyEvent::new(KeyCode::A, KeyState::Down),
10251028
Some(DecodedKey::Unicode('A')),
@@ -1033,15 +1036,21 @@ mod test {
10331036
),
10341037
(KeyEvent::new(KeyCode::A, KeyState::Up), None),
10351038
// A with right shift held
1036-
(KeyEvent::new(KeyCode::RShift, KeyState::Down), None),
1039+
(
1040+
KeyEvent::new(KeyCode::RShift, KeyState::Down),
1041+
Some(DecodedKey::RawKey(KeyCode::RShift)),
1042+
),
10371043
(
10381044
KeyEvent::new(KeyCode::A, KeyState::Down),
10391045
Some(DecodedKey::Unicode('A')),
10401046
),
10411047
(KeyEvent::new(KeyCode::A, KeyState::Up), None),
10421048
(KeyEvent::new(KeyCode::RShift, KeyState::Up), None),
10431049
// Caps lock ON
1044-
(KeyEvent::new(KeyCode::CapsLock, KeyState::Down), None),
1050+
(
1051+
KeyEvent::new(KeyCode::CapsLock, KeyState::Down),
1052+
Some(DecodedKey::RawKey(KeyCode::CapsLock)),
1053+
),
10451054
(KeyEvent::new(KeyCode::CapsLock, KeyState::Up), None),
10461055
// Letters are now caps
10471056
(
@@ -1050,7 +1059,10 @@ mod test {
10501059
),
10511060
(KeyEvent::new(KeyCode::X, KeyState::Up), None),
10521061
// Unless you press shift
1053-
(KeyEvent::new(KeyCode::RShift, KeyState::Down), None),
1062+
(
1063+
KeyEvent::new(KeyCode::RShift, KeyState::Down),
1064+
Some(DecodedKey::RawKey(KeyCode::RShift)),
1065+
),
10541066
(
10551067
KeyEvent::new(KeyCode::A, KeyState::Down),
10561068
Some(DecodedKey::Unicode('a')),
@@ -1083,7 +1095,10 @@ mod test {
10831095
),
10841096
(KeyEvent::new(KeyCode::A, KeyState::Up), None),
10851097
// Left Control
1086-
(KeyEvent::new(KeyCode::LControl, KeyState::Down), None),
1098+
(
1099+
KeyEvent::new(KeyCode::LControl, KeyState::Down),
1100+
Some(DecodedKey::RawKey(KeyCode::LControl)),
1101+
),
10871102
(
10881103
KeyEvent::new(KeyCode::A, KeyState::Down),
10891104
Some(DecodedKey::Unicode('\u{0001}')),
@@ -1097,7 +1112,10 @@ mod test {
10971112
),
10981113
(KeyEvent::new(KeyCode::A, KeyState::Up), None),
10991114
// Right Control
1100-
(KeyEvent::new(KeyCode::RControl, KeyState::Down), None),
1115+
(
1116+
KeyEvent::new(KeyCode::RControl, KeyState::Down),
1117+
Some(DecodedKey::RawKey(KeyCode::RControl)),
1118+
),
11011119
(
11021120
KeyEvent::new(KeyCode::A, KeyState::Down),
11031121
Some(DecodedKey::Unicode('\u{0001}')),
@@ -1124,7 +1142,10 @@ mod test {
11241142
),
11251143
(KeyEvent::new(KeyCode::Numpad0, KeyState::Up), None),
11261144
// Numlock OFF
1127-
(KeyEvent::new(KeyCode::NumpadLock, KeyState::Down), None),
1145+
(
1146+
KeyEvent::new(KeyCode::NumpadLock, KeyState::Down),
1147+
Some(DecodedKey::RawKey(KeyCode::NumpadLock)),
1148+
),
11281149
(KeyEvent::new(KeyCode::NumpadLock, KeyState::Up), None),
11291150
// Now KP_0 produces INSERT
11301151
(
@@ -1358,7 +1379,7 @@ mod test {
13581379
code: KeyCode::RControl2,
13591380
state: KeyState::Down,
13601381
},
1361-
None,
1382+
Some(DecodedKey::RawKey(KeyCode::RControl2)),
13621383
),
13631384
// Numlock
13641385
(

0 commit comments

Comments
 (0)