From 98707ff412569b20eaab0f105041026630f42cc3 Mon Sep 17 00:00:00 2001 From: Tim Hardeck Date: Wed, 22 Oct 2014 17:47:30 +0200 Subject: [PATCH] Add common Linux key combination methods to rfb Add methods to send common Linux key combinations to VNC like ctrl+alt+Fx, alt+Fx and ctrl+alt+backspace. --- include/rfb.js | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/include/rfb.js b/include/rfb.js index 0afe656d..ffd33eeb 100644 --- a/include/rfb.js +++ b/include/rfb.js @@ -261,6 +261,46 @@ var RFB; this._sock.send(arr); }, + sendCtrlAltBackspace: function () { + if (this._rfb_state !== 'normal' || this._view_only) { return false; } + Util.Info("Sending Ctrl-Alt-Backspace"); + + var arr = []; + arr = arr.concat(RFB.messages.keyEvent(0xFFE3, 1)); // Control + arr = arr.concat(RFB.messages.keyEvent(0xFFE9, 1)); // Alt + arr = arr.concat(RFB.messages.keyEvent(0xFF08, 1)); // Backspace + arr = arr.concat(RFB.messages.keyEvent(0xFF08, 0)); // Backspace + arr = arr.concat(RFB.messages.keyEvent(0xFFE9, 0)); // Alt + arr = arr.concat(RFB.messages.keyEvent(0xFFE3, 0)); // Control + this._sock.send(arr); + }, + + sendCtrlAltF: function (number) { + if (this._rfb_state !== 'normal' || this._view_only) { return false; } + Util.Info("Sending Ctrl-Alt-F" + number); + + var arr = []; + arr = arr.concat(RFB.messages.keyEvent(0xFFE3, 1)); // Control + arr = arr.concat(RFB.messages.keyEvent(0xFFE9, 1)); // Alt + arr = arr.concat(RFB.messages.keyEvent(0xFFBD + number, 1)); // Fx + arr = arr.concat(RFB.messages.keyEvent(0xFFBD + number, 0)); // Fx + arr = arr.concat(RFB.messages.keyEvent(0xFFE9, 0)); // Alt + arr = arr.concat(RFB.messages.keyEvent(0xFFE3, 0)); // Control + this._sock.send(arr); + }, + + sendAltF: function (number) { + if (this._rfb_state !== 'normal' || this._view_only) { return false; } + Util.Info("Sending Alt-F" + number); + + var arr = []; + arr = arr.concat(RFB.messages.keyEvent(0xFFE9, 1)); // Alt + arr = arr.concat(RFB.messages.keyEvent(0xFFBD + number, 1)); // Fx + arr = arr.concat(RFB.messages.keyEvent(0xFFBD + number, 0)); // Fx + arr = arr.concat(RFB.messages.keyEvent(0xFFE9, 0)); // Alt + this._sock.send(arr); + }, + xvpOp: function (ver, op) { if (this._rfb_xvp_ver < ver) { return false; } Util.Info("Sending XVP operation " + op + " (version " + ver + ")");