diff --git a/include/canvas.js b/include/canvas.js index 72af98eb00d927a26cdca03f3bade4b6778aa802..ad273fbbda834455f4b3e403d195167e7b54f14d 100644 --- a/include/canvas.js +++ b/include/canvas.js @@ -38,7 +38,7 @@ cdef('target', 'dom', null, 'Canvas element for VNC viewport'); cdef('focusContainer', 'dom', document, 'DOM element that traps keyboard input'); cdef('true_color', 'bool', true, 'Request true color pixel data'); cdef('colourMap', 'raw', [], 'Colour map array (not true color)'); -cdef('scale', 'float', 1, 'VNC viewport scale factor'); +cdef('scale', 'float', 1.0, 'Viewport scale factor 0.1 - 1.0'); cdef('render_mode', 'str', '', 'Canvas rendering mode (read-only)'); @@ -70,6 +70,9 @@ that.set_colourMap = function(val, idx) { that.set_render_mode = function () { throw("render_mode is read-only"); }; +that.set_scale = function(scale) { that.rescale(scale); }; + + // Add some other getters/setters that.get_width = function() { return c_width; @@ -232,6 +235,12 @@ that.rescale = function(factor) { return; } + if (factor > 1.0) { + factor = 1.0; + } else if (factor < 0.1) { + factor = 0.1; + } + if (conf.scale === factor) { //Util.Debug("Canvas already scaled to '" + factor + "'"); return; diff --git a/include/input.js b/include/input.js index 56fa91dc4b2d92e9920c56179a7f58b6f7bc9239..f155594126d0da350eb4a8672ca19395777cac52 100644 --- a/include/input.js +++ b/include/input.js @@ -460,6 +460,7 @@ function cdef(v, type, defval, desc) { // Capability settings, default can be overridden cdef('target', 'dom', document, 'DOM element that grabs mouse input'); cdef('focused', 'bool', true, 'Capture and send mouse clicks/movement'); +cdef('scale', 'float', 1.0, 'Viewport scale factor 0.0 - 1.0'); cdef('mouseButton', 'func', null, 'Handler for mouse button click/release'); cdef('mouseMove', 'func', null, 'Handler for mouse movement');