mirror of
https://github.com/weyne85/rustdesk.git
synced 2025-10-29 17:00:05 +00:00
down as press only for linux and non-modifier
This commit is contained in:
@@ -647,7 +647,12 @@ impl Connection {
|
||||
// handle all down as press
|
||||
// fix unexpected repeating key on remote linux, seems also fix abnormal alt/shift, which
|
||||
// make sure all key are released
|
||||
if me.press || me.down {
|
||||
let is_press = if cfg!(target_os = "linux") {
|
||||
(me.press || me.down) && !crate::is_modifier(&me)
|
||||
} else {
|
||||
me.press
|
||||
};
|
||||
if is_press {
|
||||
if let Some(key_event::Union::unicode(_)) = me.union {
|
||||
handle_key(&me);
|
||||
} else if let Some(key_event::Union::seq(_)) = me.union {
|
||||
|
||||
@@ -305,10 +305,10 @@ fn handle_mouse_(evt: &MouseEvent, conn: i32) {
|
||||
let mut en = ENIGO.lock().unwrap();
|
||||
#[cfg(not(target_os = "macos"))]
|
||||
let mut to_release = Vec::new();
|
||||
fix_modifiers(&evt.modifiers[..], &mut en, 0);
|
||||
if evt_type == 1 {
|
||||
#[cfg(target_os = "macos")]
|
||||
en.reset_flag();
|
||||
fix_modifiers(&evt.modifiers[..], &mut en, 0);
|
||||
for ref ck in evt.modifiers.iter() {
|
||||
if let Some(key) = KEY_MAP.get(&ck.value()) {
|
||||
#[cfg(target_os = "macos")]
|
||||
|
||||
Reference in New Issue
Block a user