From b3b50829f53c4bb33a0cffacc08102224958549e Mon Sep 17 00:00:00 2001 From: Asura Date: Wed, 3 Aug 2022 14:52:08 +0800 Subject: [PATCH] Fix sycn of CapsLock --- src/server/input_service.rs | 5 +++++ src/ui/remote.rs | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/src/server/input_service.rs b/src/server/input_service.rs index e3ac41a59..0154da085 100644 --- a/src/server/input_service.rs +++ b/src/server/input_service.rs @@ -822,6 +822,11 @@ fn legacy_keyboard_mode(evt: &KeyEvent) { } fn translate_keyboard_mode(evt: &KeyEvent) { + // Caps affects the keycode map of the peer system(Linux). + let mut en = ENIGO.lock().unwrap(); + if en.get_key_state(Key::CapsLock){ + rdev_key_click(RdevKey::CapsLock); + } let chr = char::from_u32(evt.chr()).unwrap_or_default(); if evt.down { KBD_CONTEXT.lock().unwrap().unicode_char_down(chr).expect("unicode_char_down error"); diff --git a/src/ui/remote.rs b/src/ui/remote.rs index dad3e9ae0..6625c83fa 100644 --- a/src/ui/remote.rs +++ b/src/ui/remote.rs @@ -1122,6 +1122,10 @@ impl Handler { if key == RdevKey::AltGr || evt.scan_code == 541 { return; } + // Caps affects the keycode map of the peer system(Linux). + if key == RdevKey::CapsLock { + return; + } dbg!(key); self.map_keyboard_mode(down_or_up, key, None); }