Improved RDP mouse and fixed French translation.
Ylian Saint-Hilaire committed
Jun 11, 2020 at 10:25 UTC
213c4bdf1c9577c644b0bac7530ee02ad6e243f5
2 files changed
+23
-4
public/mstsc/client.js
+22
-3
@@ -41,10 +41,19 @@
41
// create renderer
42
this.render = new Mstsc.Canvas.create(this.canvas);
43
this.socket = null;
44
- this.activeSession = false;
44
+ this.activeSession = false;
45
+ this.mouseNagleTimer = null;
46
+ this.mouseNagleData = null;
47
this.install();
48
}
47
-
49
+
50
+ /*
51
+ obj.mNagleTimer = setTimeout(function () {
52
+ obj.send(String.fromCharCode(5, obj.buttonmask) + ShortToStr(obj.mx) + ShortToStr(obj.my));
53
+ obj.mNagleTimer = null;
54
+ }, 50);
55
+ */
56
+
57
Client.prototype = {
58
install : function () {
59
var self = this;
@@ -53,12 +62,18 @@
62
this.canvas.addEventListener('mousemove', function (e) {
63
if (!self.socket || !self.activeSession) return;
64
var rect = e.target.getBoundingClientRect();
56
- self.socket.send(JSON.stringify(['mouse', e.clientX - rect.left, e.clientY - rect.top, 0, false]));
65
+ self.mouseNagleData = ['mouse', e.clientX - rect.left, e.clientY - rect.top, 0, false];
66
+ if (self.mouseNagleTimer == null) {
67
+ //console.log('sending', self.mouseNagleData);
68
+ self.mouseNagleTimer = setTimeout(function () { self.socket.send(JSON.stringify(self.mouseNagleData)); self.mouseNagleTimer = null; }, 50);
69
+ }
70
+ //self.socket.send(JSON.stringify(this.mouseNagleData));
71
e.preventDefault();
72
return false;
73
});
74
this.canvas.addEventListener('mousedown', function (e) {
75
if (!self.socket || !self.activeSession) return;
76
+ if (self.mouseNagleTimer != null) { clearTimeout(self.mouseNagleTimer); self.mouseNagleTimer = null; }
77
var rect = e.target.getBoundingClientRect();
78
self.socket.send(JSON.stringify(['mouse', e.clientX - rect.left, e.clientY - rect.top, mouseButtonMap(e.button), true]));
79
e.preventDefault();
@@ -66,6 +81,7 @@
81
});
82
this.canvas.addEventListener('mouseup', function (e) {
83
if (!self.socket || !self.activeSession) return;
84
+ if (self.mouseNagleTimer != null) { clearTimeout(self.mouseNagleTimer); self.mouseNagleTimer = null; }
85
var rect = e.target.getBoundingClientRect();
86
self.socket.send(JSON.stringify(['mouse', e.clientX - rect.left, e.clientY - rect.top, mouseButtonMap(e.button), false]));
87
e.preventDefault();
@@ -73,6 +89,7 @@
89
});
90
this.canvas.addEventListener('contextmenu', function (e) {
91
if (!self.socket || !self.activeSession) return;
92
+ if (self.mouseNagleTimer != null) { clearTimeout(self.mouseNagleTimer); self.mouseNagleTimer = null; }
93
var rect = e.target.getBoundingClientRect();
94
self.socket.send(JSON.stringify(['mouse', e.clientX - rect.left, e.clientY - rect.top, mouseButtonMap(e.button), false]));
95
e.preventDefault();
@@ -80,6 +97,7 @@
97
});
98
this.canvas.addEventListener('DOMMouseScroll', function (e) {
99
if (!self.socket || !self.activeSession) return;
100
+ if (self.mouseNagleTimer != null) { clearTimeout(self.mouseNagleTimer); self.mouseNagleTimer = null; }
101
var isHorizontal = false;
102
var delta = e.detail;
103
var step = Math.round(Math.abs(delta) * 15 / 8);
@@ -90,6 +108,7 @@
108
});
109
this.canvas.addEventListener('mousewheel', function (e) {
110
if (!self.socket || !self.activeSession) return;
111
+ if (self.mouseNagleTimer != null) { clearTimeout(self.mouseNagleTimer); self.mouseNagleTimer = null; }
112
var isHorizontal = Math.abs(e.deltaX) > Math.abs(e.deltaY);
113
var delta = isHorizontal?e.deltaX:e.deltaY;
114
var step = Math.round(Math.abs(delta) * 15 / 8);
translate/translate.json
+1
-1
@@ -8236,7 +8236,7 @@
8236
{
8237
"en": "Device Message",
8238
"nl": "Apparaatbericht",
8239
- "fr": "Message de Service\r\n",
8239
+ "fr": "Message de Service",
8240
"xloc": [
8241
"default.handlebars->27->629"
8242
]