Desktop multip-lexor fixes.

Ylian Saint-Hilaire committed Apr 28, 2020 at 13:00 UTC 366ccff63bca0a40e5ba46877870baa405737d0e
2 files changed +8 -2
meshdesktopmultiplex.js
+7 -1
@@ -461,6 +461,7 @@ function CreateDesktopMultiplexor(parent, domain, nodeid, func) {
461
462 switch (command) {
463 case 3: // Tile, check dimentions and store
464 + if (data.length < 10) break;
465 var x = data.readUInt16BE(4), y = data.readUInt16BE(6);
466 var dimensions = require('image-size')(data.slice(8));
467 var sx = (x / 16), sy = (y / 16), sw = (dimensions.width / 16), sh = (dimensions.height / 16);
@@ -475,7 +476,7 @@ function CreateDesktopMultiplexor(parent, domain, nodeid, func) {
476 obj.imagesCount++;
477 if (obj.imagesCount == 2000000000) { obj.imagesCount = 1; } // Loop the counter if needed
478
478 - //console.log('Adding Image ' + obj.counter);
479 + //console.log('Adding Image ' + obj.counter, x, y, dimensions.width, dimensions.height);
480
481 var skips = [];
482
@@ -519,6 +520,8 @@ function CreateDesktopMultiplexor(parent, domain, nodeid, func) {
520 case 4: // Tile Copy, do nothing.
521 break;
522 case 7: // Screen Size, clear the screen state and compute the tile count
523 + if (data.length < 8) break;
524 + if ((obj.width === data.readUInt16BE(4)) && (obj.height === data.readUInt16BE(6))) break; // Same screen size as before, skip this.
525 obj.counter++;
526 obj.lastScreenSizeCmd = data;
527 obj.lastScreenSizeCounter = obj.counter;
@@ -552,6 +555,9 @@ function CreateDesktopMultiplexor(parent, domain, nodeid, func) {
555 obj.lastDisplayInfoData = data;
556 obj.sendToAllViewers(data);
557 break;
558 + case 12: // SetDisplay
559 + obj.sendToAllViewers(data);
560 + break;
561 case 14: // KVM_INIT_TOUCH
562 break;
563 case 15: // KVM_TOUCH
translate/translate.json
+1 -1
@@ -29855,4 +29855,4 @@
29855 ]
29856 }
29857 ]
29858 -}
29858 +}
\ No newline at end of file