Skip to content

Commit d6cdf6f

Browse files
committed
change: ignore mapping for idling rotary encoder
1 parent 4f09d9d commit d6cdf6f

File tree

1 file changed

+13
-10
lines changed

1 file changed

+13
-10
lines changed

src/processor/mapper.rs

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -82,13 +82,14 @@ impl<
8282
events: &mut Vec<Event<L>>,
8383
) {
8484
// map key matrix
85+
let result = input.key_matrix_result;
8586
let mut provisional_events = Vec::<Event<L>>::with_capacity(10);
8687
let mut new_layer = true;
8788
let mut layer = L::default();
8889
while new_layer {
8990
provisional_events.clear();
9091
new_layer = false;
91-
for (i, row) in input.key_matrix_result.matrix.iter().enumerate() {
92+
for (i, row) in result.matrix.iter().enumerate() {
9293
for (j, bit) in row.iter().enumerate() {
9394
let action = self.mapping.key_matrix[layer.into()][i][j];
9495
if bit.pressed {
@@ -104,7 +105,7 @@ impl<
104105
#[allow(clippy::nonminimal_bool)]
105106
if !(bit.edge == Edge::None && !bit.pressed) {
106107
provisional_events.push(Event {
107-
time_ticks: input.key_matrix_result.scan_time_ticks,
108+
time_ticks: result.scan_time_ticks,
108109
i,
109110
j,
110111
edge: bit.edge,
@@ -116,14 +117,16 @@ impl<
116117
}
117118

118119
// map rotary encoder
119-
provisional_events.push(Event {
120-
time_ticks: input.rotary_encoder_result.scan_time_ticks,
121-
i: 0,
122-
j: 0,
123-
edge: input.rotary_encoder_result.edge,
124-
action: self.mapping.rotary_encoder[layer.into()]
125-
[input.rotary_encoder_result.direction],
126-
});
120+
let result = input.rotary_encoder_result;
121+
if !(result.edge == Edge::None && result.direction == Direction::None) {
122+
provisional_events.push(Event {
123+
time_ticks: result.scan_time_ticks,
124+
i: 0,
125+
j: 0,
126+
edge: result.edge,
127+
action: self.mapping.rotary_encoder[layer.into()][result.direction],
128+
});
129+
}
127130

128131
*events = provisional_events;
129132
self.previous_key_matrix_result = input.key_matrix_result;

0 commit comments

Comments
 (0)