From 95775678ca2d7a5254a0e14b67a0e35353b4a5da Mon Sep 17 00:00:00 2001 From: Asura Date: Wed, 7 Dec 2022 20:32:34 -0800 Subject: [PATCH] refactor: get modifier state --- Cargo.lock | 24 ++---------------------- Cargo.toml | 2 +- src/keyboard.rs | 45 ++++++++++++++++++--------------------------- 3 files changed, 21 insertions(+), 50 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5708905db..529be08d6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1533,7 +1533,7 @@ dependencies = [ "log", "objc", "pkg-config", - "rdev 0.5.0-2 (git+https://github.com/asur4s/rdev)", + "rdev", "serde 1.0.147", "serde_derive", "tfc", @@ -4226,26 +4226,6 @@ dependencies = [ "num_cpus", ] -[[package]] -name = "rdev" -version = "0.5.0-2" -dependencies = [ - "cocoa", - "core-foundation 0.9.3", - "core-foundation-sys 0.8.3", - "core-graphics 0.22.3", - "enum-map", - "epoll", - "inotify", - "lazy_static", - "libc", - "strum 0.24.1", - "strum_macros 0.24.3", - "widestring 1.0.2", - "winapi 0.3.9", - "x11 2.20.0", -] - [[package]] name = "rdev" version = "0.5.0-2" @@ -4538,7 +4518,7 @@ dependencies = [ "num_cpus", "objc", "parity-tokio-ipc", - "rdev 0.5.0-2", + "rdev", "repng", "reqwest", "rpassword 7.1.0", diff --git a/Cargo.toml b/Cargo.toml index afd617f78..2861b3f63 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -63,7 +63,7 @@ default-net = "0.11.0" wol-rs = "0.9.1" flutter_rust_bridge = { git = "https://github.com/SoLongAndThanksForAllThePizza/flutter_rust_bridge", optional = true } errno = "0.2.8" -rdev = { path = "../rdev" } +rdev = { git = "https://github.com/asur4s/rdev" } url = { version = "2.1", features = ["serde"] } reqwest = { version = "0.11", features = ["blocking", "json", "rustls-tls"], default-features=false } diff --git a/src/keyboard.rs b/src/keyboard.rs index 07bcecf76..08cc5760a 100644 --- a/src/keyboard.rs +++ b/src/keyboard.rs @@ -93,7 +93,20 @@ pub mod client { shift: bool, command: bool, ) -> (bool, bool, bool, bool) { - get_modifiers_state(alt, ctrl, shift, command) + let modifiers_lock = MODIFIERS_STATE.lock().unwrap(); + let ctrl = *modifiers_lock.get(&Key::ControlLeft).unwrap() + || *modifiers_lock.get(&Key::ControlRight).unwrap() + || ctrl; + let shift = *modifiers_lock.get(&Key::ShiftLeft).unwrap() + || *modifiers_lock.get(&Key::ShiftRight).unwrap() + || shift; + let command = *modifiers_lock.get(&Key::MetaLeft).unwrap() + || *modifiers_lock.get(&Key::MetaRight).unwrap() + || command; + let alt = + *modifiers_lock.get(&Key::Alt).unwrap() || *modifiers_lock.get(&Key::AltGr).unwrap() || alt; + + (alt, ctrl, shift, command) } pub fn legacy_modifiers( @@ -166,7 +179,7 @@ pub fn grab_loop(recv: mpsc::Receiver) { return Some(event); } if KEYBOARD_HOOKED.load(Ordering::SeqCst) { - keyboard::client::process_event(event); + client::process_event(event); return None; } else { return Some(event); @@ -185,7 +198,7 @@ pub fn grab_loop(recv: mpsc::Receiver) { if let Key::Unknown(keycode) = key { log::error!("rdev get unknown key, keycode is : {:?}", keycode); } else { - crate::keyboard::client::process_event(event); + client::process_event(event); } None } @@ -243,7 +256,7 @@ pub fn release_remote_keys() { } } -pub fn get_keyboard_mode_enum() -> KeyboardMode { +pub fn get_keyboard_mode_enum() -> KeyboardMode { match client::get_keyboard_mode().as_str() { "map" => KeyboardMode::Map, "translate" => KeyboardMode::Translate, @@ -280,28 +293,6 @@ pub fn convert_numpad_keys(key: Key) -> Key { } } -pub fn get_modifiers_state( - alt: bool, - ctrl: bool, - shift: bool, - command: bool, -) -> (bool, bool, bool, bool) { - let modifiers_lock = MODIFIERS_STATE.lock().unwrap(); - let ctrl = *modifiers_lock.get(&Key::ControlLeft).unwrap() - || *modifiers_lock.get(&Key::ControlRight).unwrap() - || ctrl; - let shift = *modifiers_lock.get(&Key::ShiftLeft).unwrap() - || *modifiers_lock.get(&Key::ShiftRight).unwrap() - || shift; - let command = *modifiers_lock.get(&Key::MetaLeft).unwrap() - || *modifiers_lock.get(&Key::MetaRight).unwrap() - || command; - let alt = - *modifiers_lock.get(&Key::Alt).unwrap() || *modifiers_lock.get(&Key::AltGr).unwrap() || alt; - - (alt, ctrl, shift, command) -} - fn update_modifiers_state(event: &Event) { // for mouse let mut keys = MODIFIERS_STATE.lock().unwrap(); @@ -595,7 +586,7 @@ pub fn legacy_keyboard_mode(event: &Event, key_event: &mut KeyEvent) { return; } } - let (alt, ctrl, shift, command) = get_modifiers_state(alt, ctrl, shift, command); + let (alt, ctrl, shift, command) = client::get_modifiers_state(alt, ctrl, shift, command); client::legacy_modifiers(key_event, alt, ctrl, shift, command); if down_or_up == true {