tmp commit
Signed-off-by: dignow <linlong1265@gmail.com>
This commit is contained in:
parent
67c90eda4b
commit
200fc56a4a
@ -592,17 +592,52 @@ class InputModel {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
evt['type'] = type;
|
evt['type'] = type;
|
||||||
|
|
||||||
|
final pos = handlePointerDevicePos(
|
||||||
|
x,
|
||||||
|
y,
|
||||||
|
isMove,
|
||||||
|
type,
|
||||||
|
onExit: onExit,
|
||||||
|
buttons: evt['buttons'],
|
||||||
|
);
|
||||||
|
if (pos == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
evt['x'] = '${pos.x}}';
|
||||||
|
evt['y'] = '${pos.y}';
|
||||||
|
|
||||||
|
Map<int, String> mapButtons = {
|
||||||
|
kPrimaryMouseButton: 'left',
|
||||||
|
kSecondaryMouseButton: 'right',
|
||||||
|
kMiddleMouseButton: 'wheel',
|
||||||
|
kBackMouseButton: 'back',
|
||||||
|
kForwardMouseButton: 'forward'
|
||||||
|
};
|
||||||
|
evt['buttons'] = mapButtons[evt['buttons']] ?? '';
|
||||||
|
|
||||||
|
bind.sessionSendMouse(sessionId: sessionId, msg: json.encode(evt));
|
||||||
|
}
|
||||||
|
|
||||||
|
Point? handlePointerDevicePos(
|
||||||
|
double x,
|
||||||
|
double y,
|
||||||
|
bool isMove,
|
||||||
|
String evtType, {
|
||||||
|
bool onExit = false,
|
||||||
|
int buttons = kPrimaryMouseButton,
|
||||||
|
}) {
|
||||||
y -= CanvasModel.topToEdge;
|
y -= CanvasModel.topToEdge;
|
||||||
x -= CanvasModel.leftToEdge;
|
x -= CanvasModel.leftToEdge;
|
||||||
final canvasModel = parent.target!.canvasModel;
|
final canvasModel = parent.target!.canvasModel;
|
||||||
final nearThr = 3;
|
|
||||||
var nearRight = (canvasModel.size.width - x) < nearThr;
|
|
||||||
var nearBottom = (canvasModel.size.height - y) < nearThr;
|
|
||||||
|
|
||||||
final ffiModel = parent.target!.ffiModel;
|
final ffiModel = parent.target!.ffiModel;
|
||||||
if (isMove) {
|
if (isMove) {
|
||||||
canvasModel.moveDesktopMouse(x, y);
|
canvasModel.moveDesktopMouse(x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final nearThr = 3;
|
||||||
|
var nearRight = (canvasModel.size.width - x) < nearThr;
|
||||||
|
var nearBottom = (canvasModel.size.height - y) < nearThr;
|
||||||
final d = ffiModel.display;
|
final d = ffiModel.display;
|
||||||
final imageWidth = d.width * canvasModel.scale;
|
final imageWidth = d.width * canvasModel.scale;
|
||||||
final imageHeight = d.height * canvasModel.scale;
|
final imageHeight = d.height * canvasModel.scale;
|
||||||
@ -650,7 +685,7 @@ class InputModel {
|
|||||||
} catch (e) {
|
} catch (e) {
|
||||||
debugPrintStack(
|
debugPrintStack(
|
||||||
label: 'canvasModel.scale value ${canvasModel.scale}, $e');
|
label: 'canvasModel.scale value ${canvasModel.scale}, $e');
|
||||||
return;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
int minX = d.x.toInt();
|
int minX = d.x.toInt();
|
||||||
@ -661,38 +696,17 @@ class InputModel {
|
|||||||
evtY = trySetNearestRange(evtY, minY, maxY, 5);
|
evtY = trySetNearestRange(evtY, minY, maxY, 5);
|
||||||
if (evtX < minX || evtY < minY || evtX > maxX || evtY > maxY) {
|
if (evtX < minX || evtY < minY || evtX > maxX || evtY > maxY) {
|
||||||
// If left mouse up, no early return.
|
// If left mouse up, no early return.
|
||||||
if (evt['buttons'] != kPrimaryMouseButton || type != 'up') {
|
if (buttons != kPrimaryMouseButton || evtType != 'up') {
|
||||||
return;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type != '') {
|
if (evtType != '') {
|
||||||
evtX = 0;
|
evtX = 0;
|
||||||
evtY = 0;
|
evtY = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
evt['x'] = '$evtX';
|
return Point(evtX, evtY);
|
||||||
evt['y'] = '$evtY';
|
|
||||||
var buttons = '';
|
|
||||||
switch (evt['buttons']) {
|
|
||||||
case kPrimaryMouseButton:
|
|
||||||
buttons = 'left';
|
|
||||||
break;
|
|
||||||
case kSecondaryMouseButton:
|
|
||||||
buttons = 'right';
|
|
||||||
break;
|
|
||||||
case kMiddleMouseButton:
|
|
||||||
buttons = 'wheel';
|
|
||||||
break;
|
|
||||||
case kBackMouseButton:
|
|
||||||
buttons = 'back';
|
|
||||||
break;
|
|
||||||
case kForwardMouseButton:
|
|
||||||
buttons = 'forward';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
evt['buttons'] = buttons;
|
|
||||||
bind.sessionSendMouse(sessionId: sessionId, msg: json.encode(evt));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Web only
|
/// Web only
|
||||||
|
@ -118,9 +118,29 @@ message TouchScaleUpdate {
|
|||||||
int32 scale = 1;
|
int32 scale = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message TouchPanStart {
|
||||||
|
int32 x = 1;
|
||||||
|
int32 y = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message TouchPanUpdate {
|
||||||
|
// The delta x position relative to the previous position.
|
||||||
|
int32 x = 1;
|
||||||
|
// The delta y position relative to the previous position.
|
||||||
|
int32 y = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message TouchPanEnd {
|
||||||
|
int32 x = 1;
|
||||||
|
int32 y = 2;
|
||||||
|
}
|
||||||
|
|
||||||
message TouchEvent {
|
message TouchEvent {
|
||||||
oneof union {
|
oneof union {
|
||||||
TouchScaleUpdate scale_update = 1;
|
TouchScaleUpdate scale_update = 1;
|
||||||
|
TouchPanStart pan_start = 2;
|
||||||
|
TouchPanUpdate pan_update = 3;
|
||||||
|
TouchPanEnd pan_end = 4;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user