[go: nahoru, domu]

Skip to content

Commit

Permalink
Merge branch 'hidpi_scale' of https://github.com/CendioOssman/noVNC
Browse files Browse the repository at this point in the history
  • Loading branch information
CendioOssman committed Aug 16, 2018
2 parents c995c08 + 7407c1f commit ce62875
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 11 deletions.
7 changes: 5 additions & 2 deletions core/display.js
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,9 @@ export default class Display {
height = this._fb_height;
}

width = Math.floor(width);
height = Math.floor(height);

if (width > this._fb_width) {
width = this._fb_width;
}
Expand Down Expand Up @@ -524,8 +527,8 @@ export default class Display {
// style width to a number, the canvas is cleared.
// However, if you set the style width to a string
// ('NNNpx'), the canvas is scaled without clearing.
const width = Math.round(factor * vp.w) + 'px';
const height = Math.round(factor * vp.h) + 'px';
const width = factor * vp.w + 'px';
const height = factor * vp.h + 'px';

if ((this._target.style.width !== width) ||
(this._target.style.height !== height)) {
Expand Down
7 changes: 4 additions & 3 deletions core/rfb.js
Original file line number Diff line number Diff line change
Expand Up @@ -547,7 +547,8 @@ export default class RFB extends EventTargetMixin {
}

const size = this._screenSize();
RFB.messages.setDesktopSize(this._sock, size.w, size.h,
RFB.messages.setDesktopSize(this._sock,
Math.floor(size.w), Math.floor(size.h),
this._screen_id, this._screen_flags);

Log.Debug('Requested new desktop size: ' +
Expand All @@ -556,8 +557,8 @@ export default class RFB extends EventTargetMixin {

// Gets the the size of the available screen
_screenSize() {
return { w: this._screen.offsetWidth,
h: this._screen.offsetHeight };
let r = this._screen.getBoundingClientRect();
return { w: r.width, h: r.height };
}

_fixScrollbars() {
Expand Down
23 changes: 17 additions & 6 deletions tests/test.mouse.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,23 @@ import Mouse from '../core/input/mouse.js';
describe('Mouse Event Handling', function() {
"use strict";

// This function is only used on target (the canvas)
// and for these tests we can assume that the canvas is 100x100
// located at coordinates 10x10
sinon.stub(Element.prototype, 'getBoundingClientRect').returns(
{left: 10, right: 110, top: 10, bottom: 110, width: 100, height: 100});
const target = document.createElement('canvas');
let target;

beforeEach(function () {
// For these tests we can assume that the canvas is 100x100
// located at coordinates 10x10
target = document.createElement('canvas');
target.style.position = "absolute";
target.style.top = "10px";
target.style.left = "10px";
target.style.width = "100px";
target.style.height = "100px";
document.body.appendChild(target);
});
afterEach(function () {
document.body.removeChild(target);
target = null;
});

// The real constructors might not work everywhere we
// want to run these tests
Expand Down

0 comments on commit ce62875

Please sign in to comment.