@@ -82,13 +82,14 @@ impl<
82
82
events : & mut Vec < Event < L > > ,
83
83
) {
84
84
// map key matrix
85
+ let result = input. key_matrix_result ;
85
86
let mut provisional_events = Vec :: < Event < L > > :: with_capacity ( 10 ) ;
86
87
let mut new_layer = true ;
87
88
let mut layer = L :: default ( ) ;
88
89
while new_layer {
89
90
provisional_events. clear ( ) ;
90
91
new_layer = false ;
91
- for ( i, row) in input . key_matrix_result . matrix . iter ( ) . enumerate ( ) {
92
+ for ( i, row) in result . matrix . iter ( ) . enumerate ( ) {
92
93
for ( j, bit) in row. iter ( ) . enumerate ( ) {
93
94
let action = self . mapping . key_matrix [ layer. into ( ) ] [ i] [ j] ;
94
95
if bit. pressed {
@@ -104,7 +105,7 @@ impl<
104
105
#[ allow( clippy:: nonminimal_bool) ]
105
106
if !( bit. edge == Edge :: None && !bit. pressed ) {
106
107
provisional_events. push ( Event {
107
- time_ticks : input . key_matrix_result . scan_time_ticks ,
108
+ time_ticks : result . scan_time_ticks ,
108
109
i,
109
110
j,
110
111
edge : bit. edge ,
@@ -116,14 +117,16 @@ impl<
116
117
}
117
118
118
119
// 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
+ }
127
130
128
131
* events = provisional_events;
129
132
self . previous_key_matrix_result = input. key_matrix_result ;
0 commit comments