Merge pull request #3116 from fufesou/feat/keyboard_translate_mode

feat/keyboard translate mode
This commit is contained in:
RustDesk
2023-02-08 15:17:11 +08:00
committed by GitHub
6 changed files with 277 additions and 77 deletions

View File

@@ -365,11 +365,24 @@ impl<T: InvokeUiSession> Session<T> {
}
pub fn enter(&self) {
#[cfg(target_os = "windows")]
{
match &self.lc.read().unwrap().keyboard_mode as _ {
"legacy" => rdev::set_get_key_name(true),
"translate" => rdev::set_get_key_name(true),
_ => {}
}
}
IS_IN.store(true, Ordering::SeqCst);
keyboard::client::change_grab_status(GrabState::Run);
}
pub fn leave(&self) {
#[cfg(target_os = "windows")]
{
rdev::set_get_key_name(false);
}
IS_IN.store(false, Ordering::SeqCst);
keyboard::client::change_grab_status(GrabState::Wait);
}
@@ -407,7 +420,7 @@ impl<T: InvokeUiSession> Session<T> {
pub fn handle_flutter_key_event(
&self,
name: &str,
_name: &str,
keycode: i32,
scancode: i32,
lock_modes: i32,
@@ -432,7 +445,7 @@ impl<T: InvokeUiSession> Session<T> {
};
let event = Event {
time: std::time::SystemTime::now(),
name: Option::Some(name.to_owned()),
unicode: None,
code: keycode as _,
scan_code: scancode as _,
event_type: event_type,