win filter scancodes that is greater than 255

Signed-off-by: fufesou <shuanglongchen@yeah.net>
This commit is contained in:
fufesou 2023-01-10 00:40:41 +08:00
parent 3e9ab2278d
commit 95844e60cf

View File

@ -65,7 +65,7 @@ pub mod client {
#[cfg(not(feature = "cli"))] #[cfg(not(feature = "cli"))]
if let Some(handler) = CUR_SESSION.lock().unwrap().as_ref() { if let Some(handler) = CUR_SESSION.lock().unwrap().as_ref() {
return handler.get_keyboard_mode(); return handler.get_keyboard_mode();
} }
"legacy".to_string() "legacy".to_string()
} }
@ -372,7 +372,7 @@ pub fn get_peer_platform() -> String {
#[cfg(not(feature = "cli"))] #[cfg(not(feature = "cli"))]
if let Some(handler) = CUR_SESSION.lock().unwrap().as_ref() { if let Some(handler) = CUR_SESSION.lock().unwrap().as_ref() {
return handler.peer_platform(); return handler.peer_platform();
} }
"Windows".to_string() "Windows".to_string()
} }
@ -615,7 +615,13 @@ pub fn map_keyboard_mode(event: &Event, mut key_event: KeyEvent) -> Option<KeyEv
#[cfg(target_os = "windows")] #[cfg(target_os = "windows")]
let keycode = match peer.as_str() { let keycode = match peer.as_str() {
"windows" => event.scan_code, "windows" => {
// https://github.com/rustdesk/rustdesk/issues/1371
if event.scan_code > 255 {
return None;
}
event.scan_code
}
"macos" => { "macos" => {
if hbb_common::config::LocalConfig::get_kb_layout_type() == "ISO" { if hbb_common::config::LocalConfig::get_kb_layout_type() == "ISO" {
rdev::win_scancode_to_macos_iso_code(event.scan_code)? rdev::win_scancode_to_macos_iso_code(event.scan_code)?