From a80aa41628cf84dc7f290e6d40d93e4d690df5c4 Mon Sep 17 00:00:00 2001 From: Pierre Ossman Date: Fri, 20 Oct 2017 13:03:50 +0200 Subject: [PATCH] Change clippingDisplay() to a property It fits much better as a property given that it only tells what the current state of things are. --- app/ui.js | 3 +-- core/display.js | 10 +++++----- core/rfb.js | 7 ++----- docs/API-internal.md | 2 +- docs/API.md | 23 ++++------------------- tests/test.display.js | 6 ++---- 6 files changed, 15 insertions(+), 36 deletions(-) diff --git a/app/ui.js b/app/ui.js index 626b5f46..20a8912d 100644 --- a/app/ui.js +++ b/app/ui.js @@ -1377,8 +1377,7 @@ var UI = { // Check if viewport drag is possible. It is only possible // if the remote display is clipping the client display. - if (UI.rfb.viewport && - UI.rfb.clippingDisplay()) { + if (UI.rfb.viewport && UI.rfb.isClipped) { clipping = true; } diff --git a/core/display.js b/core/display.js index 07d4ef5b..13d47773 100644 --- a/core/display.js +++ b/core/display.js @@ -106,6 +106,11 @@ Display.prototype = { return this._fb_height; }, + get isClipped() { + var vp = this._viewportLoc; + return this._fb_width > vp.w || this._fb_height > vp.h; + }, + logo: null, // ===== EVENT HANDLERS ===== @@ -512,11 +517,6 @@ Display.prototype = { this._target.style.cursor = "none"; }, - clippingDisplay: function () { - var vp = this._viewportLoc; - return this._fb_width > vp.w || this._fb_height > vp.h; - }, - autoscale: function (containerWidth, containerHeight, downscaleOnly) { var vp = this._viewportLoc; var targetAspectRatio = containerWidth / containerHeight; diff --git a/core/rfb.js b/core/rfb.js index 2767e53c..3ab3bcad 100644 --- a/core/rfb.js +++ b/core/rfb.js @@ -268,6 +268,8 @@ RFB.prototype = { get viewport() { return this._display.viewport; }, set viewport(viewport) { this._display.viewport = viewport; }, + get isClipped() { return this._display.isClipped; }, + // ===== EVENT HANDLERS ===== onupdatestate: function () {}, // onupdatestate(rfb, state, oldstate): connection state change @@ -380,11 +382,6 @@ RFB.prototype = { this._display.viewportChangeSize(width, height); }, - clippingDisplay: function () { - if (this._rfb_connection_state !== 'connected') { return false; } - return this._display.clippingDisplay(); - }, - // Requests a change of remote desktop size. This message is an extension // and may only be sent if we have received an ExtendedDesktopSize message requestDesktopSize: function (width, height) { diff --git a/docs/API-internal.md b/docs/API-internal.md index 6a45d38f..21741dc7 100644 --- a/docs/API-internal.md +++ b/docs/API-internal.md @@ -89,6 +89,7 @@ None | viewport | bool | RW | false | Use viewport clipping | width | int | RO | | Display area width | height | int | RO | | Display area height +| isClipped | bool | RO | | Is the remote display is larger than the client display ### 2.3.2 Methods @@ -116,7 +117,6 @@ None | changeCursor | (pixels, mask, hotx, hoty, w, h) | Change cursor appearance | defaultCursor | () | Restore default cursor appearance | disableLocalCursor | () | Disable local (client-side) cursor -| clippingDisplay | () | Check if the remote display is larger than the client display | autoscale | (containerWidth, containerHeight, downscaleOnly) | Scale the display ### 2.3.3 Callbacks diff --git a/docs/API.md b/docs/API.md index ad16990a..6c948a53 100644 --- a/docs/API.md +++ b/docs/API.md @@ -46,6 +46,10 @@ protocol stream. relative position of a clipped canvas. Only relevant if `viewport` is enabled. Disabled by default. +`isClipped` *Read only* + - Is a `boolean` indicating if the framebuffer is larger than the + current canvas, i.e. it is being clipped. + `disconnectTimeout` - Is a `long` indicating how many seconds to wait for a disconnect request to complete. Is set to `3` by default. @@ -128,10 +132,6 @@ protocol stream. [`RFB.autoscale()`](#rfbautoscale) - Set `RFB.scale` so that the framebuffer fits a specified container. -[`RFB.clippingDisplay()`](#rfbclippingDisplay) - - Returns `true` if the framebuffer is larger than what is currently - displayed on the canvas. - [`RFB.requestDesktopSize()`](#rfbrequestDesktopSize) - Send a request to change the remote desktop size. @@ -426,21 +426,6 @@ The `RFB.autoscale()` method is used to automatically adjust **`downscaleOnly`** - A `boolean` specifying if the scale must be kept below `1.0`. -#### RFB.clippingDisplay() - -The `RFB.clippingDisplay()` method is used to determine if the -framebuffer is larger than the current canvas, i.e. it is being -clipped. - -##### Syntax - - RFB.clippingDisplay( ); - -###### Return value - -Returns a `boolean` indicating if the framebuffer is currently being -clipped. - #### RFB.requestDesktopSize() The `RFB.requestDesktopSize()` method is used to request a change of diff --git a/tests/test.display.js b/tests/test.display.js index 675b43d7..33ff8f12 100644 --- a/tests/test.display.js +++ b/tests/test.display.js @@ -92,14 +92,12 @@ describe('Display/Canvas Helper', function () { }); it('should report clipping when framebuffer > viewport', function () { - var clipping = display.clippingDisplay(); - expect(clipping).to.be.true; + expect(display.isClipped).to.be.true; }); it('should report not clipping when framebuffer = viewport', function () { display.viewportChangeSize(5, 5); - var clipping = display.clippingDisplay(); - expect(clipping).to.be.false; + expect(display.isClipped).to.be.false; }); it('should show the entire framebuffer when disabling the viewport', function() {