add trackpad speed factor

Signed-off-by: fufesou <shuanglongchen@yeah.net>
This commit is contained in:
fufesou 2023-03-09 18:28:27 +08:00
parent ebbf2f2bba
commit c19e46acdd

View File

@ -45,7 +45,10 @@ class InputModel {
var command = false; var command = false;
// trackpad // trackpad
final _trackpadSpeed = 0.01;
var trackpadScrollDistance = Offset.zero; var trackpadScrollDistance = Offset.zero;
var _trackpadScrollUnsent = Offset.zero;
var _newScroll = true;
Timer? _flingTimer; Timer? _flingTimer;
// mouse // mouse
@ -331,10 +334,22 @@ class InputModel {
void onPointerPanZoomUpdate(PointerPanZoomUpdateEvent e) { void onPointerPanZoomUpdate(PointerPanZoomUpdateEvent e) {
var delta = e.panDelta; var delta = e.panDelta;
trackpadScrollDistance += delta; trackpadScrollDistance += delta;
bind.sessionSendMouse( _trackpadScrollUnsent += (delta * _trackpadSpeed);
id: id, final x = _trackpadScrollUnsent.dx.truncate();
msg: final y = _trackpadScrollUnsent.dy.truncate();
'{"type": "trackpad", "x": "${delta.dx.toInt()}", "y": "${delta.dy.toInt()}"}'); _trackpadScrollUnsent -= Offset(_trackpadScrollUnsent.dx - x.toDouble(),
_trackpadScrollUnsent.dy - y.toDouble());
var sendMsg = x != 0 || y != 0;
if (_newScroll) {
sendMsg = true;
_newScroll = false;
}
if (sendMsg) {
bind.sessionSendMouse(
id: id, msg: '{"type": "trackpad", "x": "$x", "y": "$y"}');
}
} }
// Simple simulation for fling. // Simple simulation for fling.
@ -358,6 +373,8 @@ class InputModel {
} }
void onPointerPanZoomEnd(PointerPanZoomEndEvent e) { void onPointerPanZoomEnd(PointerPanZoomEndEvent e) {
_newScroll = true;
_trackpadScrollUnsent = Offset.zero;
var x = _signOrZero(trackpadScrollDistance.dx); var x = _signOrZero(trackpadScrollDistance.dx);
var y = _signOrZero(trackpadScrollDistance.dy); var y = _signOrZero(trackpadScrollDistance.dy);
var dx = trackpadScrollDistance.dx.abs() ~/ 40; var dx = trackpadScrollDistance.dx.abs() ~/ 40;