Merge pull request #1857 from sj6219/gamma

Windows key input bug
This commit is contained in:
RustDesk 2022-10-29 15:17:37 +08:00 committed by GitHub
commit 4ab179e4b7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -640,11 +640,32 @@ fn sync_status(evt: &KeyEvent) -> (bool, bool) {
|| (!caps_locking && en.get_key_state(enigo::Key::CapsLock));
let click_numlock = (num_locking && !en.get_key_state(enigo::Key::NumLock))
|| (!num_locking && en.get_key_state(enigo::Key::NumLock));
#[cfg(windows)]
let click_numlock = {
let code = evt.chr();
let key = rdev::get_win_key(code, 0);
match key {
RdevKey::Home |
RdevKey::UpArrow |
RdevKey::PageUp |
RdevKey::LeftArrow |
RdevKey::RightArrow |
RdevKey::End |
RdevKey::DownArrow |
RdevKey::PageDown |
RdevKey::Insert |
RdevKey::Delete => en.get_key_state(enigo::Key::NumLock),
_ => click_numlock,
}
};
return (click_capslock, click_numlock);
}
fn map_keyboard_mode(evt: &KeyEvent) {
// map mode(1): Send keycode according to the peer platform.
#[cfg(windows)]
crate::platform::windows::try_change_desktop();
let (click_capslock, click_numlock) = sync_status(evt);
// Wayland