@@ -7,13 +7,14 @@ use crate::grab_target_key_code::GrabTargetKeyCode;
77use crate :: grabbed_device:: GrabbedDevice ;
88use crate :: grabbed_device_handle:: GrabbedDeviceHandle ;
99use crate :: runtime:: get_runtime;
10- use evdev:: enums:: { EventType , EV_SYN } ;
10+ use evdev:: enums:: { EventCode , EventType , EV_SYN } ;
1111use evdev:: util:: event_code_to_int;
1212use evdev:: { InputEvent , ReadFlag , ReadStatus } ;
1313use libc:: c_uint;
1414use log:: Level ;
1515use mio:: event:: Event ;
1616use mio:: { Events , Poll , Token , Waker } ;
17+ use std:: any:: Any ;
1718use std:: error:: Error ;
1819use std:: io;
1920use std:: io:: ErrorKind ;
@@ -390,9 +391,15 @@ impl EventLoopThread {
390391 }
391392
392393 fn process_event ( & self , device_id : usize , event : & InputEvent , grabbed_device : & GrabbedDevice ) {
393- let consumed = self
394- . callback
395- . on_evdev_event ( device_id, & grabbed_device. device_info , event) ;
394+ // Key Mapper only cares about key events. Do not send other events so latency
395+ // isn't introduced with the IPC.
396+ let consumed = match event. event_code {
397+ EventCode :: EV_KEY ( _) => {
398+ self . callback
399+ . on_evdev_event ( device_id, & grabbed_device. device_info , event)
400+ }
401+ _ => false ,
402+ } ;
396403
397404 if !consumed {
398405 let ( event_type, event_code) = event_code_to_int ( & event. event_code ) ;
0 commit comments