Change clippingDisplay() to a property

It fits much better as a property given that it only tells what the
current state of things are.
This commit is contained in:
Pierre Ossman 2017-10-20 13:03:50 +02:00
parent 15a6269510
commit a80aa41628
6 changed files with 15 additions and 36 deletions

View File

@ -1377,8 +1377,7 @@ var UI = {
// Check if viewport drag is possible. It is only possible // Check if viewport drag is possible. It is only possible
// if the remote display is clipping the client display. // if the remote display is clipping the client display.
if (UI.rfb.viewport && if (UI.rfb.viewport && UI.rfb.isClipped) {
UI.rfb.clippingDisplay()) {
clipping = true; clipping = true;
} }

View File

@ -106,6 +106,11 @@ Display.prototype = {
return this._fb_height; return this._fb_height;
}, },
get isClipped() {
var vp = this._viewportLoc;
return this._fb_width > vp.w || this._fb_height > vp.h;
},
logo: null, logo: null,
// ===== EVENT HANDLERS ===== // ===== EVENT HANDLERS =====
@ -512,11 +517,6 @@ Display.prototype = {
this._target.style.cursor = "none"; 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) { autoscale: function (containerWidth, containerHeight, downscaleOnly) {
var vp = this._viewportLoc; var vp = this._viewportLoc;
var targetAspectRatio = containerWidth / containerHeight; var targetAspectRatio = containerWidth / containerHeight;

View File

@ -268,6 +268,8 @@ RFB.prototype = {
get viewport() { return this._display.viewport; }, get viewport() { return this._display.viewport; },
set viewport(viewport) { this._display.viewport = viewport; }, set viewport(viewport) { this._display.viewport = viewport; },
get isClipped() { return this._display.isClipped; },
// ===== EVENT HANDLERS ===== // ===== EVENT HANDLERS =====
onupdatestate: function () {}, // onupdatestate(rfb, state, oldstate): connection state change onupdatestate: function () {}, // onupdatestate(rfb, state, oldstate): connection state change
@ -380,11 +382,6 @@ RFB.prototype = {
this._display.viewportChangeSize(width, height); 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 // Requests a change of remote desktop size. This message is an extension
// and may only be sent if we have received an ExtendedDesktopSize message // and may only be sent if we have received an ExtendedDesktopSize message
requestDesktopSize: function (width, height) { requestDesktopSize: function (width, height) {

View File

@ -89,6 +89,7 @@ None
| viewport | bool | RW | false | Use viewport clipping | viewport | bool | RW | false | Use viewport clipping
| width | int | RO | | Display area width | width | int | RO | | Display area width
| height | int | RO | | Display area height | height | int | RO | | Display area height
| isClipped | bool | RO | | Is the remote display is larger than the client display
### 2.3.2 Methods ### 2.3.2 Methods
@ -116,7 +117,6 @@ None
| changeCursor | (pixels, mask, hotx, hoty, w, h) | Change cursor appearance | changeCursor | (pixels, mask, hotx, hoty, w, h) | Change cursor appearance
| defaultCursor | () | Restore default cursor appearance | defaultCursor | () | Restore default cursor appearance
| disableLocalCursor | () | Disable local (client-side) cursor | 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 | autoscale | (containerWidth, containerHeight, downscaleOnly) | Scale the display
### 2.3.3 Callbacks ### 2.3.3 Callbacks

View File

@ -46,6 +46,10 @@ protocol stream.
relative position of a clipped canvas. Only relevant if `viewport` relative position of a clipped canvas. Only relevant if `viewport`
is enabled. Disabled by default. 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` `disconnectTimeout`
- Is a `long` indicating how many seconds to wait for a disconnect - Is a `long` indicating how many seconds to wait for a disconnect
request to complete. Is set to `3` by default. request to complete. Is set to `3` by default.
@ -128,10 +132,6 @@ protocol stream.
[`RFB.autoscale()`](#rfbautoscale) [`RFB.autoscale()`](#rfbautoscale)
- Set `RFB.scale` so that the framebuffer fits a specified container. - 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) [`RFB.requestDesktopSize()`](#rfbrequestDesktopSize)
- Send a request to change the remote desktop size. - Send a request to change the remote desktop size.
@ -426,21 +426,6 @@ The `RFB.autoscale()` method is used to automatically adjust
**`downscaleOnly`** **`downscaleOnly`**
- A `boolean` specifying if the scale must be kept below `1.0`. - 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() #### RFB.requestDesktopSize()
The `RFB.requestDesktopSize()` method is used to request a change of The `RFB.requestDesktopSize()` method is used to request a change of

View File

@ -92,14 +92,12 @@ describe('Display/Canvas Helper', function () {
}); });
it('should report clipping when framebuffer > viewport', function () { it('should report clipping when framebuffer > viewport', function () {
var clipping = display.clippingDisplay(); expect(display.isClipped).to.be.true;
expect(clipping).to.be.true;
}); });
it('should report not clipping when framebuffer = viewport', function () { it('should report not clipping when framebuffer = viewport', function () {
display.viewportChangeSize(5, 5); display.viewportChangeSize(5, 5);
var clipping = display.clippingDisplay(); expect(display.isClipped).to.be.false;
expect(clipping).to.be.false;
}); });
it('should show the entire framebuffer when disabling the viewport', function() { it('should show the entire framebuffer when disabling the viewport', function() {