diff --git a/include/rfb.js b/include/rfb.js index b7aa3f62..f58cc438 100644 --- a/include/rfb.js +++ b/include/rfb.js @@ -131,6 +131,7 @@ Util.conf_defaults(conf, that, defaults, [ ['true_color', 'rw', 'bool', true, 'Request true color pixel data'], ['local_cursor', 'rw', 'bool', false, 'Request locally rendered cursor'], ['shared', 'rw', 'bool', true, 'Request shared mode'], + ['view_only', 'rw', 'bool', false, 'Disable client mouse/keyboard'], ['connectTimeout', 'rw', 'int', def_con_timeout, 'Time (s) to wait for connection'], ['disconnectTimeout', 'rw', 'int', 3, 'Time (s) to wait for disconnection'], @@ -207,11 +208,17 @@ function constructor() { Util.Error("Display exception: " + exc); updateState('fatal', "No working Display"); } - keyboard = new Keyboard({'target': conf.focusContainer, + if(!conf.view_only) { + keyboard = new Keyboard({'target': conf.focusContainer, 'onKeyPress': keyPress}); - mouse = new Mouse({'target': conf.target, + mouse = new Mouse({'target': conf.target, 'onMouseButton': mouseButton, 'onMouseMove': mouseMove}); + } + else { + keyboard = new Keyboard({'target': conf.focusContainer}); + mouse = new Mouse({'target': conf.target}); + } rmode = display.get_render_mode(); @@ -1556,7 +1563,7 @@ that.sendPassword = function(passwd) { }; that.sendCtrlAltDel = function() { - if (rfb_state !== "normal") { return false; } + if (rfb_state !== "normal" || conf.view_only==true) { return false; } Util.Info("Sending Ctrl-Alt-Del"); var arr = []; arr = arr.concat(keyEvent(0xFFE3, 1)); // Control diff --git a/include/ui.js b/include/ui.js index 74a0005c..3738cba3 100644 --- a/include/ui.js +++ b/include/ui.js @@ -52,6 +52,7 @@ load: function() { UI.initSetting('true_color', true); UI.initSetting('cursor', false); UI.initSetting('shared', true); + UI.initSetting('view_only',false); UI.initSetting('connectTimeout', 2); UI.initSetting('path', ''); diff --git a/vnc_auto.html b/vnc_auto.html index a500b797..ad6ea66b 100644 --- a/vnc_auto.html +++ b/vnc_auto.html @@ -105,6 +105,7 @@ 'true_color': WebUtil.getQueryVar('true_color', true), 'local_cursor': WebUtil.getQueryVar('cursor', true), 'shared': WebUtil.getQueryVar('shared', true), + 'view_only': WebUtil.getQueryVar('view_only',false), 'updateState': updateState, 'onPasswordRequired': passwordRequired}); rfb.connect(host, port, password, path);