From 021939a6a6c16b2ec62aefb5bf2d6eddb4dd22bd Mon Sep 17 00:00:00 2001 From: fufesou Date: Sat, 1 Apr 2023 19:30:22 +0800 Subject: [PATCH] tmp commit, for debug Signed-off-by: fufesou --- src/keyboard.rs | 8 ++++++++ src/server/input_service.rs | 16 ++++++---------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/keyboard.rs b/src/keyboard.rs index a2d17bc14..e8186ad45 100644 --- a/src/keyboard.rs +++ b/src/keyboard.rs @@ -517,6 +517,11 @@ pub fn event_to_key_events( } }; + println!( + "REMOVE ME ==================================== key_events {:?}", + &key_events + ); + #[cfg(not(any(target_os = "android", target_os = "ios")))] if keyboard_mode != KeyboardMode::Translate { let is_numpad_key = is_numpad_key(&event); @@ -893,8 +898,10 @@ fn try_file_win2win_hotkey( events: &mut Vec, ) { if peer == OS_LOWER_WINDOWS && is_hot_key_modifiers_down() && unsafe { !IS_0X021D_DOWN } { + let mut down = false; let win2win_hotkey = match event.event_type { EventType::KeyPress(..) => { + down = true; if let Some(unicode) = get_unicode_from_vk(event.platform_code as u32) { Some((unicode as u32 & 0x0000FFFF) | (event.platform_code << 16)) } else { @@ -907,6 +914,7 @@ fn try_file_win2win_hotkey( if let Some(code) = win2win_hotkey { let mut evt = key_event.clone(); evt.set_win2win_hotkey(code); + evt.down = down; events.push(evt); } } diff --git a/src/server/input_service.rs b/src/server/input_service.rs index 38467fa32..d85848314 100644 --- a/src/server/input_service.rs +++ b/src/server/input_service.rs @@ -1,8 +1,6 @@ use super::*; #[cfg(target_os = "linux")] use crate::common::IS_X11; -#[cfg(target_os = "windows")] -use crate::platform::windows::get_char_from_unicode; #[cfg(target_os = "macos")] use dispatch::Queue; use enigo::{Enigo, Key, KeyboardControllable, MouseButton, MouseControllable}; @@ -1294,13 +1292,12 @@ fn translate_keyboard_mode(evt: &KeyEvent) { #[cfg(target_os = "windows")] fn simulate_win2win_hotkey(code: u32, down: bool) { - let mut simulated = false; - let unicode: u16 = (code & 0x0000FFFF) as u16; - if unicode != 0 { + if down { // Try convert unicode to virtual keycode first. // https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-vkkeyscanw let res = unsafe { winapi::um::winuser::VkKeyScanW(unicode) }; + println!("REMOVE ME =============================== VkKeyScanW {} {}", unicode, res); if res as u16 != 0xFFFF { let vk = res & 0x00FF; let flag = res >> 8; @@ -1319,14 +1316,13 @@ fn simulate_win2win_hotkey(code: u32, down: bool) { allow_err!(rdev::simulate(&EventType::KeyRelease(modifiers[rpos]))); } } - simulated = true; + return; } } - if simulated { - let keycode: u16 = ((code >> 16) & 0x0000FFFF) as u16; - allow_err!(rdev::simulate_code(Some(keycode), None, down)); - } + let keycode: u16 = ((code >> 16) & 0x0000FFFF) as u16; + println!("REMOVE ME =============================== simulate_win2win_hotkey down {} {},{}", down, unicode, keycode); + allow_err!(rdev::simulate_code(Some(keycode), None, down)); } pub fn handle_key_(evt: &KeyEvent) {