diff --git a/CHANGELOG.md b/CHANGELOG.md index 40db86abda..45a9593b00 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +## [4.0.3](https://github.com/sds100/KeyMapper/releases/tag/v4.0.3) + +#### 07 February 2026 + +## Fixed + +- [#2006](https://github.com/keymapperorg/KeyMapper/issues/2006) Actually fixed the bug with crash with Locale switching +- [#2014](https://github.com/keymapperorg/KeyMapper/issues/2014) Reduce mouse latency when remapped with Expert mode. + ## [4.0.2](https://github.com/sds100/KeyMapper/releases/tag/v4.0.2) #### 04 February 2026 diff --git a/app/version.properties b/app/version.properties index cd9ef648b2..584436fb6f 100644 --- a/app/version.properties +++ b/app/version.properties @@ -1,2 +1,2 @@ -VERSION_NAME=4.0.2 -VERSION_CODE=242 +VERSION_NAME=4.0.3 +VERSION_CODE=243 diff --git a/evdev/src/main/rust/evdev_manager/core/src/event_loop.rs b/evdev/src/main/rust/evdev_manager/core/src/event_loop.rs index ef374aaa5a..25ab4126c5 100644 --- a/evdev/src/main/rust/evdev_manager/core/src/event_loop.rs +++ b/evdev/src/main/rust/evdev_manager/core/src/event_loop.rs @@ -7,13 +7,14 @@ use crate::grab_target_key_code::GrabTargetKeyCode; use crate::grabbed_device::GrabbedDevice; use crate::grabbed_device_handle::GrabbedDeviceHandle; use crate::runtime::get_runtime; -use evdev::enums::{EventType, EV_SYN}; +use evdev::enums::{EventCode, EventType, EV_SYN}; use evdev::util::event_code_to_int; use evdev::{InputEvent, ReadFlag, ReadStatus}; use libc::c_uint; use log::Level; use mio::event::Event; use mio::{Events, Poll, Token, Waker}; +use std::any::Any; use std::error::Error; use std::io; use std::io::ErrorKind; @@ -390,9 +391,15 @@ impl EventLoopThread { } fn process_event(&self, device_id: usize, event: &InputEvent, grabbed_device: &GrabbedDevice) { - let consumed = self - .callback - .on_evdev_event(device_id, &grabbed_device.device_info, event); + // Key Mapper only cares about key events. Do not send other events so latency + // isn't introduced with the IPC. + let consumed = match event.event_code { + EventCode::EV_KEY(_) => { + self.callback + .on_evdev_event(device_id, &grabbed_device.device_info, event) + } + _ => false, + }; if !consumed { let (event_type, event_code) = event_code_to_int(&event.event_code); diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/8.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/8.png index 37681d4faa..cd225f42b6 100644 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/8.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/8.png differ