to be compatible with 1.1.8

This commit is contained in:
rustdesk 2022-01-10 01:29:50 +08:00
parent ae79a36f7b
commit 3a6dc19616
2 changed files with 13 additions and 4 deletions

View File

@ -585,7 +585,10 @@ impl AudioHandler {
);
audio_buffer.lock().unwrap().extend(buffer);
} else {
audio_buffer.lock().unwrap().extend(buffer[0..n].iter().cloned());
audio_buffer
.lock()
.unwrap()
.extend(buffer[0..n].iter().cloned());
}
}
#[cfg(any(target_os = "android"))]
@ -681,7 +684,7 @@ pub struct LoginConfigHandler {
pub port_forward: (String, i32),
pub support_press: bool,
pub support_refresh: bool,
pub internation_keyboard: bool,
pub version: i64,
}
impl Deref for LoginConfigHandler {
@ -938,7 +941,7 @@ impl LoginConfigHandler {
if !pi.version.is_empty() {
self.support_press = true;
self.support_refresh = true;
self.internation_keyboard = crate::get_version_number(&pi.version) > 1001008;
self.version = crate::get_version_number(&pi.version);
}
let serde = PeerInfoSerde {
username,

View File

@ -233,6 +233,8 @@ impl Handler {
let mut me = self.clone();
let peer = self.peer_platform();
let is_win = peer == "Windows";
let version = self.lc.read().unwrap().version;
const OFFSET_CASE: u8 = 'a' as u8 - 'A' as u8;
std::thread::spawn(move || {
// This will block.
std::env::set_var("KEYBOARD_ONLY", "y"); // pass to rdev
@ -329,7 +331,7 @@ impl Handler {
if let Some(k) = control_key {
key_event.set_control_key(k);
} else {
let chr = match evt.name {
let mut chr = match evt.name {
Some(ref s) => s.chars().next().unwrap_or('\0'),
_ => '\0',
};
@ -338,6 +340,10 @@ impl Handler {
me.lock_screen();
return;
}
// <= 1.1.8, caps modifier only for 'a' -> 'z', so here adjust it
if version <= 1001008 && chr >= 'A' && chr <= 'Z' {
chr = (chr as u8 + OFFSET_CASE) as _;
}
key_event.set_chr(chr as _);
} else {
log::error!("Unknown key {:?}", evt);