mirror of
https://github.com/kasmtech/KasmVNC.git
synced 2025-02-02 19:49:12 +01:00
Allow autoscale() with zero height or width
Commit 6e7e6f9 stopped the function from running if width or height was zero, this commit reverts that change. This commit also makes the resulting canvas 0x0 if autoscale is called with zero. By adding this special case we can avoid division by zero in the calculations.
This commit is contained in:
parent
46b7d1db95
commit
12565dc4ac
@ -191,10 +191,16 @@ export default class Display {
|
||||
}
|
||||
|
||||
absX(x) {
|
||||
if (this._scale === 0) {
|
||||
return 0;
|
||||
}
|
||||
return x / this._scale + this._viewportLoc.x;
|
||||
}
|
||||
|
||||
absY(y) {
|
||||
if (this._scale === 0) {
|
||||
return 0;
|
||||
}
|
||||
return y / this._scale + this._viewportLoc.y;
|
||||
}
|
||||
|
||||
@ -503,21 +509,23 @@ export default class Display {
|
||||
}
|
||||
|
||||
autoscale(containerWidth, containerHeight) {
|
||||
let scaleRatio;
|
||||
|
||||
if (containerWidth === 0 || containerHeight === 0) {
|
||||
Log.Warn("Autoscale doesn't work when width or height is zero");
|
||||
return;
|
||||
}
|
||||
scaleRatio = 0;
|
||||
|
||||
} else {
|
||||
|
||||
const vp = this._viewportLoc;
|
||||
const targetAspectRatio = containerWidth / containerHeight;
|
||||
const fbAspectRatio = vp.w / vp.h;
|
||||
|
||||
let scaleRatio;
|
||||
if (fbAspectRatio >= targetAspectRatio) {
|
||||
scaleRatio = containerWidth / vp.w;
|
||||
} else {
|
||||
scaleRatio = containerHeight / vp.h;
|
||||
}
|
||||
}
|
||||
|
||||
this._rescale(scaleRatio);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user