From a0cb39af9c0c3b7718113173ac98ca2acccd7353 Mon Sep 17 00:00:00 2001 From: Asura Date: Tue, 30 Aug 2022 15:35:39 +0800 Subject: [PATCH] Fix numlock and capslock on Mac --- src/server/input_service.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/server/input_service.rs b/src/server/input_service.rs index c01212184..684ada483 100644 --- a/src/server/input_service.rs +++ b/src/server/input_service.rs @@ -655,12 +655,21 @@ fn sync_status(evt: &KeyEvent) -> (bool, bool) { fn map_keyboard_mode(evt: &KeyEvent) { // map mode(1): Send keycode according to the peer platform. let (click_capslock, click_numlock) = sync_status(evt); + + #[cfg(not(target_os = "macos"))] if click_capslock { rdev_key_click(RdevKey::CapsLock); } + #[cfg(not(target_os = "macos"))] if click_numlock { rdev_key_click(RdevKey::NumLock); } + #[cfg(target_os = "macos")] + if evt.down && click_capslock { + rdev_key_down_or_up(RdevKey::CapsLock, evt.down); + } + log::info!("click capslog {:?} click_numlock {:?}", click_capslock, click_numlock); + rdev_key_down_or_up(RdevKey::Unknown(evt.chr()), evt.down); return; }