mirror of
https://github.com/weyne85/rustdesk.git
synced 2025-10-29 17:00:05 +00:00
use RawKeyEvent and Listener for input
This commit is contained in:
@@ -689,10 +689,15 @@ class FFI {
|
||||
json.encode(modify({'type': type, 'buttons': button.value})));
|
||||
}
|
||||
|
||||
static void inputKey(String name) {
|
||||
static void inputKey(String name, [bool? down]) {
|
||||
if (!ffiModel.keyboard()) return;
|
||||
setByName(
|
||||
'input_key', json.encode(modify({'name': name, 'press': 'true'})));
|
||||
'input_key',
|
||||
json.encode(modify({
|
||||
'name': name,
|
||||
'down': (down ?? false).toString(),
|
||||
'press': 'true'
|
||||
})));
|
||||
}
|
||||
|
||||
static void moveMouse(double x, double y) {
|
||||
@@ -807,8 +812,8 @@ class FFI {
|
||||
x = 0;
|
||||
y = 0;
|
||||
}
|
||||
evt['x'] = '$x';
|
||||
evt['y'] = '$y';
|
||||
evt['x'] = '${x.round()}';
|
||||
evt['y'] = '${y.round()}';
|
||||
var buttons = '';
|
||||
switch (evt['buttons']) {
|
||||
case 1:
|
||||
@@ -827,7 +832,7 @@ class FFI {
|
||||
|
||||
static listenToMouse(bool yesOrNo) {
|
||||
if (yesOrNo) {
|
||||
PlatformFFI.startDesktopWebListener(handleMouse);
|
||||
PlatformFFI.startDesktopWebListener();
|
||||
} else {
|
||||
PlatformFFI.stopDesktopWebListener();
|
||||
}
|
||||
|
||||
@@ -115,8 +115,7 @@ class PlatformFFI {
|
||||
version = await getVersion();
|
||||
}
|
||||
|
||||
static void startDesktopWebListener(
|
||||
Function(Map<String, dynamic>) handleMouse) {}
|
||||
static void startDesktopWebListener() {}
|
||||
|
||||
static void stopDesktopWebListener() {}
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import 'dart:typed_data';
|
||||
import 'dart:js' as js;
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'dart:convert';
|
||||
|
||||
import '../common.dart';
|
||||
@@ -35,38 +34,37 @@ class PlatformFFI {
|
||||
}
|
||||
|
||||
// MouseRegion onHover not work for mouse move when right button down
|
||||
static void startDesktopWebListener(
|
||||
Function(Map<String, dynamic>) handleMouse) {
|
||||
static void startDesktopWebListener() {
|
||||
mouseIn = true;
|
||||
lastMouseDownButtons = 0;
|
||||
// document.body.getElementsByTagName('flt-glass-pane')[0].style.cursor = 'none';
|
||||
mouseListeners
|
||||
.add(window.document.onMouseEnter.listen((evt) => mouseIn = true));
|
||||
mouseListeners
|
||||
.add(window.document.onMouseLeave.listen((evt) => mouseIn = false));
|
||||
mouseListeners.add(window.document.onMouseMove
|
||||
.listen((evt) => handleMouse(getEvent(evt))));
|
||||
mouseListeners.add(window.document.onMouseDown
|
||||
.listen((evt) => handleMouse(getEvent(evt))));
|
||||
mouseListeners.add(
|
||||
window.document.onMouseUp.listen((evt) => handleMouse(getEvent(evt))));
|
||||
mouseListeners.add(window.document.onMouseWheel.listen((evt) {
|
||||
var dx = evt.deltaX;
|
||||
var dy = evt.deltaY;
|
||||
if (dx > 0)
|
||||
dx = -1;
|
||||
else if (dx < 0) dx = 1;
|
||||
if (dy > 0)
|
||||
dy = -1;
|
||||
else if (dy < 0) dy = 1;
|
||||
setByName('send_mouse', '{"type": "wheel", "x": "$dx", "y": "$dy"}');
|
||||
}));
|
||||
// lastMouseDownButtons = 0;
|
||||
// // document.body.getElementsByTagName('flt-glass-pane')[0].style.cursor = 'none';
|
||||
// mouseListeners
|
||||
// .add(window.document.onMouseEnter.listen((evt) => mouseIn = true));
|
||||
// mouseListeners
|
||||
// .add(window.document.onMouseLeave.listen((evt) => mouseIn = false));
|
||||
// mouseListeners.add(window.document.onMouseMove
|
||||
// .listen((evt) => handleMouse(getEvent(evt))));
|
||||
// mouseListeners.add(window.document.onMouseDown
|
||||
// .listen((evt) => handleMouse(getEvent(evt))));
|
||||
// mouseListeners.add(
|
||||
// window.document.onMouseUp.listen((evt) => handleMouse(getEvent(evt))));
|
||||
// mouseListeners.add(window.document.onMouseWheel.listen((evt) {
|
||||
// var dx = evt.deltaX;
|
||||
// var dy = evt.deltaY;
|
||||
// if (dx > 0)
|
||||
// dx = -1;
|
||||
// else if (dx < 0) dx = 1;
|
||||
// if (dy > 0)
|
||||
// dy = -1;
|
||||
// else if (dy < 0) dy = 1;
|
||||
// setByName('send_mouse', '{"type": "wheel", "x": "$dx", "y": "$dy"}');
|
||||
// }));
|
||||
mouseListeners.add(
|
||||
window.document.onContextMenu.listen((evt) => evt.preventDefault()));
|
||||
keyListeners
|
||||
.add(window.document.onKeyDown.listen((evt) => handleKey(evt, true)));
|
||||
keyListeners
|
||||
.add(window.document.onKeyUp.listen((evt) => handleKey(evt, false)));
|
||||
// keyListeners
|
||||
// .add(window.document.onKeyDown.listen((evt) => handleKey(evt, true)));
|
||||
// keyListeners
|
||||
// .add(window.document.onKeyUp.listen((evt) => handleKey(evt, false)));
|
||||
}
|
||||
|
||||
static void stopDesktopWebListener() {
|
||||
@@ -83,7 +81,7 @@ class PlatformFFI {
|
||||
|
||||
static void setMethodCallHandler(FMethod callback) {}
|
||||
|
||||
static Future<bool> invokeMethod(String method, [ dynamic arguments]) async {
|
||||
static Future<bool> invokeMethod(String method, [dynamic arguments]) async {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user