File tree Expand file tree Collapse file tree 1 file changed +9
-1
lines changed Expand file tree Collapse file tree 1 file changed +9
-1
lines changed Original file line number Diff line number Diff line change @@ -284,10 +284,18 @@ func (d *Device) Tick() error {
284
284
noneToPress = noneToPress [:0 ]
285
285
} else {
286
286
// Cancel the Combos waiting state if a key unrelated to Combos is pressed.
287
+ // Sort `d.combosPressed` so that the ones pressed earlier are triggered first.
287
288
d .combosTimer = time.Time {}
289
+ ofs := len (noneToPress )
290
+ noneToPress = d .noneToPressBuf [:ofs + len (d .combosPressed )]
291
+ for i := range noneToPress [:ofs ] {
292
+ noneToPress [len (noneToPress )- 1 - i ] = noneToPress [ofs - 1 - i ]
293
+ }
294
+ idx := 0
288
295
for xx := range d .combosPressed {
289
- noneToPress = append ( noneToPress , xx )
296
+ noneToPress [ idx ] = xx
290
297
delete (d .combosPressed , xx )
298
+ idx ++
291
299
}
292
300
pressToRelease = append (d .combosReleased , pressToRelease ... )
293
301
d .combosReleased = d .combosReleased [:0 ]
You can’t perform that action at this time.
0 commit comments