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 ]