mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-06 21:27:40 +00:00
Cleanup, JSDoc for keyboard events.
This commit is contained in:
@@ -36,6 +36,24 @@ Guacamole.Keyboard = function(element) {
|
|||||||
*/
|
*/
|
||||||
var guac_keyboard = this;
|
var guac_keyboard = this;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fired whenever the user presses a key with the element associated
|
||||||
|
* with this Guacamole.Keyboard in focus.
|
||||||
|
*
|
||||||
|
* @event
|
||||||
|
* @param {Number} keysym The keysym of the key being pressed.
|
||||||
|
*/
|
||||||
|
this.onkeydown = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fired whenever the user releases a key with the element associated
|
||||||
|
* with this Guacamole.Keyboard in focus.
|
||||||
|
*
|
||||||
|
* @event
|
||||||
|
* @param {Number} keysym The keysym of the key being released.
|
||||||
|
*/
|
||||||
|
this.onkeyup = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Map of known JavaScript keycodes which do not map to typable characters
|
* Map of known JavaScript keycodes which do not map to typable characters
|
||||||
* to their unshifted X11 keysym equivalents.
|
* to their unshifted X11 keysym equivalents.
|
||||||
@@ -92,9 +110,9 @@ Guacamole.Keyboard = function(element) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Single key state/modifier buffer
|
// Single key state/modifier buffer
|
||||||
var modShift = 0;
|
var modShift = false;
|
||||||
var modCtrl = 0;
|
var modCtrl = false;
|
||||||
var modAlt = 0;
|
var modAlt = false;
|
||||||
|
|
||||||
var keydownChar = new Array();
|
var keydownChar = new Array();
|
||||||
|
|
||||||
@@ -158,7 +176,7 @@ Guacamole.Keyboard = function(element) {
|
|||||||
function getKeySymFromKeyCode(keyCode) {
|
function getKeySymFromKeyCode(keyCode) {
|
||||||
|
|
||||||
var keysym = null;
|
var keysym = null;
|
||||||
if (modShift == 0) keysym = unshiftedKeySym[keyCode];
|
if (!modShift) keysym = unshiftedKeySym[keyCode];
|
||||||
else {
|
else {
|
||||||
keysym = shiftedKeySym[keyCode];
|
keysym = shiftedKeySym[keyCode];
|
||||||
if (keysym == null) keysym = unshiftedKeySym[keyCode];
|
if (keysym == null) keysym = unshiftedKeySym[keyCode];
|
||||||
@@ -200,11 +218,11 @@ Guacamole.Keyboard = function(element) {
|
|||||||
|
|
||||||
// Ctrl/Alt/Shift
|
// Ctrl/Alt/Shift
|
||||||
if (keynum == 16)
|
if (keynum == 16)
|
||||||
modShift = 1;
|
modShift = true;
|
||||||
else if (keynum == 17)
|
else if (keynum == 17)
|
||||||
modCtrl = 1;
|
modCtrl = true;
|
||||||
else if (keynum == 18)
|
else if (keynum == 18)
|
||||||
modAlt = 1;
|
modAlt = true;
|
||||||
|
|
||||||
var keysym = getKeySymFromKeyCode(keynum);
|
var keysym = getKeySymFromKeyCode(keynum);
|
||||||
if (keysym) {
|
if (keysym) {
|
||||||
@@ -213,7 +231,7 @@ Guacamole.Keyboard = function(element) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// If modifier keys are held down, and we have keyIdentifier
|
// If modifier keys are held down, and we have keyIdentifier
|
||||||
else if ((modCtrl == 1 || modAlt == 1) && e.keyIdentifier) {
|
else if ((modCtrl || modAlt) && e.keyIdentifier) {
|
||||||
|
|
||||||
// Get keysym from keyIdentifier
|
// Get keysym from keyIdentifier
|
||||||
keysym = getKeySymFromKeyIdentifier(modShift, e.keyIdentifier);
|
keysym = getKeySymFromKeyIdentifier(modShift, e.keyIdentifier);
|
||||||
@@ -301,11 +319,11 @@ Guacamole.Keyboard = function(element) {
|
|||||||
|
|
||||||
// Ctrl/Alt/Shift
|
// Ctrl/Alt/Shift
|
||||||
if (keynum == 16)
|
if (keynum == 16)
|
||||||
modShift = 0;
|
modShift = false;
|
||||||
else if (keynum == 17)
|
else if (keynum == 17)
|
||||||
modCtrl = 0;
|
modCtrl = false;
|
||||||
else if (keynum == 18)
|
else if (keynum == 18)
|
||||||
modAlt = 0;
|
modAlt = false;
|
||||||
else
|
else
|
||||||
stopRepeat();
|
stopRepeat();
|
||||||
|
|
||||||
@@ -322,15 +340,10 @@ Guacamole.Keyboard = function(element) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// When focus is lost, clear modifiers.
|
// When focus is lost, clear modifiers.
|
||||||
var docOnblur = element.onblur;
|
|
||||||
element.onblur = function() {
|
element.onblur = function() {
|
||||||
modAlt = 0;
|
modAlt = false;
|
||||||
modCtrl = 0;
|
modCtrl = false;
|
||||||
modShift = 0;
|
modShift = false;
|
||||||
if (docOnblur != null) docOnblur();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
guac_keyboard.onkeydown = null;
|
};
|
||||||
guac_keyboard.onkeyup = null;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
Reference in New Issue
Block a user