diff --git a/core/display.js b/core/display.js index 7da83173..6ec68b37 100644 --- a/core/display.js +++ b/core/display.js @@ -60,9 +60,6 @@ export default class Display { this._targetCtx = this._target.getContext('2d'); - // the visible canvas viewport (i.e. what actually gets seen) - //this._viewportLoc = { 'x': 0, 'y': 0, 'w': this._target.width, 'h': this._target.height }; - Log.Debug("User Agent: " + navigator.userAgent); // performance metrics @@ -123,8 +120,6 @@ export default class Display { if (!this._isPrimaryDisplay) { this._screens[0].channel = new BroadcastChannel(`screen_${this._screenID}_channel`); this._screens[0].channel.addEventListener('message', this._handleSecondaryDisplayMessage.bind(this)); - } else { - //this._animationFrameID = window.requestAnimationFrame( () => { this._pushAsyncFrame(); }); } Log.Debug("<< Display.constructor"); @@ -246,13 +241,11 @@ export default class Display { //recalculate primary display container size this._screens[0].containerHeight = this._target.parentNode.offsetHeight; this._screens[0].containerWidth = this._target.parentNode.offsetWidth; - this._screens[0].width = this._target.parentNode.offsetWidth; - this._screens[0].height = this._target.parentNode.offsetHeight; this._screens[0].pixelRatio = window.devicePixelRatio; - //this._screens[0].width = this._target.width; - //this._screens[0].height = this._target.height; + this._screens[0].width = this._target.parentNode.offsetWidth; + this._screens[0].height = this._target.parentNode.offsetHeight; - //calculate server-side resolution of each screen + //calculate server-side and client-side resolution of each screen for (let i=0; i= targetAspectRatio) { - scaleRatio = containerWidth / vp.width; + scaleRatio = containerWidth / vp.serverWidth; } else { - scaleRatio = containerHeight / vp.height; + scaleRatio = containerHeight / vp.serverHeight; } } diff --git a/core/rfb.js b/core/rfb.js index 27c35c01..e7ee9362 100644 --- a/core/rfb.js +++ b/core/rfb.js @@ -1518,8 +1518,8 @@ export default class RFB extends EventTargetMixin { if (!this._scaleViewport) { this._display.scale = 1.0; } else { - const size = this._screenSize(false); - this._display.autoscale(size.screens[0].serverWidth, size.screens[0].serverHeight, size.screens[0].scale); + const size = this._screenSize(); + this._display.autoscale(size.screens[0].width, size.screens[0].height, size.screens[0].scale); } this._fixScrollbars(); }