Merge pull request #5523 from fufesou/fix/win_try_awake_os_if_locked

win, try awake the os by mouse movement and right click
This commit is contained in:
RustDesk 2023-08-27 13:00:28 +08:00 committed by GitHub
commit 10cdd7640e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 12 deletions

View File

@ -1,11 +1,9 @@
import 'dart:io';
import 'package:bot_toast/bot_toast.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_hbb/common/widgets/dialog.dart';
import 'package:flutter_hbb/consts.dart';
import 'package:flutter_hbb/models/ab_model.dart';
import 'package:flutter_hbb/models/peer_tab_model.dart';
import 'package:get/get.dart';
import 'package:provider/provider.dart';

View File

@ -1,11 +1,9 @@
import 'package:bot_toast/bot_toast.dart';
import 'package:flutter/material.dart';
import 'package:flutter_hbb/common/widgets/address_book.dart';
import 'package:flutter_hbb/common/widgets/dialog.dart';
import 'package:flutter_hbb/common/widgets/my_group.dart';
import 'package:flutter_hbb/common/widgets/peers_view.dart';
import 'package:flutter_hbb/common/widgets/peer_card.dart';
import 'package:flutter_hbb/common/widgets/animated_rotation_widget.dart';
import 'package:flutter_hbb/consts.dart';
import 'package:flutter_hbb/desktop/widgets/popup_menu.dart';
import 'package:flutter_hbb/models/ab_model.dart';

View File

@ -58,7 +58,7 @@ use scrap::{
};
use crate::{
common::input::{MOUSE_BUTTON_LEFT, MOUSE_TYPE_DOWN, MOUSE_TYPE_UP},
common::input::{MOUSE_BUTTON_LEFT, MOUSE_BUTTON_RIGHT, MOUSE_TYPE_DOWN, MOUSE_TYPE_UP},
is_keyboard_mode_supported,
};
@ -2060,20 +2060,25 @@ pub fn send_pointer_device_event(
/// # Arguments
///
/// * `interface` - The interface for sending data.
/// * `send_click` - Whether to send a click event.
fn activate_os(interface: &impl Interface, send_click: bool) {
/// * `send_left_click` - Whether to send a click event.
fn activate_os(interface: &impl Interface, send_left_click: bool) {
let left_down = MOUSE_BUTTON_LEFT << 3 | MOUSE_TYPE_DOWN;
let left_up = MOUSE_BUTTON_LEFT << 3 | MOUSE_TYPE_UP;
let right_down = MOUSE_BUTTON_RIGHT << 3 | MOUSE_TYPE_DOWN;
let right_up = MOUSE_BUTTON_RIGHT << 3 | MOUSE_TYPE_UP;
send_mouse(left_up, 0, 0, false, false, false, false, interface);
std::thread::sleep(Duration::from_millis(50));
send_mouse(0, 0, 0, false, false, false, false, interface);
std::thread::sleep(Duration::from_millis(50));
send_mouse(0, 3, 3, false, false, false, false, interface);
if send_click {
std::thread::sleep(Duration::from_millis(50));
send_mouse(left_down, 0, 0, false, false, false, false, interface);
send_mouse(left_up, 0, 0, false, false, false, false, interface);
}
let (click_down, click_up) = if send_left_click {
(left_down, left_up)
} else {
(right_down, right_up)
};
std::thread::sleep(Duration::from_millis(50));
send_mouse(click_down, 0, 0, false, false, false, false, interface);
send_mouse(click_up, 0, 0, false, false, false, false, interface);
/*
let mut key_event = KeyEvent::new();
// do not use Esc, which has problem with Linux