Cleanup, JSDoc for keyboard events.

This commit is contained in:
Michael Jumper
2011-07-08 09:16:52 -07:00
parent 5ea2be369c
commit a4d810969d

View File

@@ -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;
}