mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-08 14:11:21 +00:00
Some JSDoc for keyboard, cleaned up keymap.
This commit is contained in:
@@ -20,54 +20,76 @@
|
|||||||
// Guacamole namespace
|
// Guacamole namespace
|
||||||
var Guacamole = Guacamole || {};
|
var Guacamole = Guacamole || {};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides cross-browser and cross-keyboard keyboard for a specific element.
|
||||||
|
* Browser and keyboard layout variation is abstracted away, providing events
|
||||||
|
* which represent keys as their corresponding X11 keysym.
|
||||||
|
*
|
||||||
|
* @constructor
|
||||||
|
* @param {Element} element The Element to use to provide keyboard events.
|
||||||
|
*/
|
||||||
Guacamole.Keyboard = function(element) {
|
Guacamole.Keyboard = function(element) {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reference to this Guacamole.Keyboard.
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
var guac_keyboard = this;
|
var guac_keyboard = this;
|
||||||
|
|
||||||
// Keymap
|
/**
|
||||||
|
* Map of known JavaScript keycodes which do not map to typable characters
|
||||||
|
* to their unshifted X11 keysym equivalents.
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
var unshiftedKeySym = {
|
||||||
|
8: 0xFF08, // backspace
|
||||||
|
9: 0xFF09, // tab
|
||||||
|
13: 0xFF0D, // enter
|
||||||
|
16: 0xFFE1, // shift
|
||||||
|
17: 0xFFE3, // ctrl
|
||||||
|
18: 0xFFE9, // alt
|
||||||
|
19: 0xFF13, // pause/break
|
||||||
|
20: 0xFFE5, // caps lock
|
||||||
|
27: 0xFF1B, // escape
|
||||||
|
33: 0xFF55, // page up
|
||||||
|
34: 0xFF56, // page down
|
||||||
|
35: 0xFF57, // end
|
||||||
|
36: 0xFF50, // home
|
||||||
|
37: 0xFF51, // left arrow
|
||||||
|
38: 0xFF52, // up arrow
|
||||||
|
39: 0xFF53, // right arrow
|
||||||
|
40: 0xFF54, // down arrow
|
||||||
|
45: 0xFF63, // insert
|
||||||
|
46: 0xFFFF, // delete
|
||||||
|
91: 0xFFEB, // left window key (super_l)
|
||||||
|
92: 0xFF67, // right window key (menu key?)
|
||||||
|
93: null, // select key
|
||||||
|
112: 0xFFBE, // f1
|
||||||
|
113: 0xFFBF, // f2
|
||||||
|
114: 0xFFC0, // f3
|
||||||
|
115: 0xFFC1, // f4
|
||||||
|
116: 0xFFC2, // f5
|
||||||
|
117: 0xFFC3, // f6
|
||||||
|
118: 0xFFC4, // f7
|
||||||
|
119: 0xFFC5, // f8
|
||||||
|
120: 0xFFC6, // f9
|
||||||
|
121: 0xFFC7, // f10
|
||||||
|
122: 0xFFC8, // f11
|
||||||
|
123: 0xFFC9, // f12
|
||||||
|
144: 0xFF7F, // num lock
|
||||||
|
145: 0xFF14 // scroll lock
|
||||||
|
};
|
||||||
|
|
||||||
var unshiftedKeySym = new Array();
|
/**
|
||||||
unshiftedKeySym[8] = 0xFF08; // backspace
|
* Map of known JavaScript keycodes which do not map to typable characters
|
||||||
unshiftedKeySym[9] = 0xFF09; // tab
|
* to their shifted X11 keysym equivalents. Keycodes must only be listed
|
||||||
unshiftedKeySym[13] = 0xFF0D; // enter
|
* here if their shifted X11 keysym equivalents differ from their unshifted
|
||||||
unshiftedKeySym[16] = 0xFFE1; // shift
|
* equivalents.
|
||||||
unshiftedKeySym[17] = 0xFFE3; // ctrl
|
* @private
|
||||||
unshiftedKeySym[18] = 0xFFE9; // alt
|
*/
|
||||||
unshiftedKeySym[19] = 0xFF13; // pause/break
|
var shiftedKeySym = {
|
||||||
unshiftedKeySym[20] = 0xFFE5; // caps lock
|
18: 0xFFE7 // alt
|
||||||
unshiftedKeySym[27] = 0xFF1B; // escape
|
};
|
||||||
unshiftedKeySym[33] = 0xFF55; // page up
|
|
||||||
unshiftedKeySym[34] = 0xFF56; // page down
|
|
||||||
unshiftedKeySym[35] = 0xFF57; // end
|
|
||||||
unshiftedKeySym[36] = 0xFF50; // home
|
|
||||||
unshiftedKeySym[37] = 0xFF51; // left arrow
|
|
||||||
unshiftedKeySym[38] = 0xFF52; // up arrow
|
|
||||||
unshiftedKeySym[39] = 0xFF53; // right arrow
|
|
||||||
unshiftedKeySym[40] = 0xFF54; // down arrow
|
|
||||||
unshiftedKeySym[45] = 0xFF63; // insert
|
|
||||||
unshiftedKeySym[46] = 0xFFFF; // delete
|
|
||||||
unshiftedKeySym[91] = 0xFFEB; // left window key (super_l)
|
|
||||||
unshiftedKeySym[92] = 0xFF67; // right window key (menu key?)
|
|
||||||
unshiftedKeySym[93] = null; // select key
|
|
||||||
unshiftedKeySym[112] = 0xFFBE; // f1
|
|
||||||
unshiftedKeySym[113] = 0xFFBF; // f2
|
|
||||||
unshiftedKeySym[114] = 0xFFC0; // f3
|
|
||||||
unshiftedKeySym[115] = 0xFFC1; // f4
|
|
||||||
unshiftedKeySym[116] = 0xFFC2; // f5
|
|
||||||
unshiftedKeySym[117] = 0xFFC3; // f6
|
|
||||||
unshiftedKeySym[118] = 0xFFC4; // f7
|
|
||||||
unshiftedKeySym[119] = 0xFFC5; // f8
|
|
||||||
unshiftedKeySym[120] = 0xFFC6; // f9
|
|
||||||
unshiftedKeySym[121] = 0xFFC7; // f10
|
|
||||||
unshiftedKeySym[122] = 0xFFC8; // f11
|
|
||||||
unshiftedKeySym[123] = 0xFFC9; // f12
|
|
||||||
unshiftedKeySym[144] = 0xFF7F; // num lock
|
|
||||||
unshiftedKeySym[145] = 0xFF14; // scroll lock
|
|
||||||
|
|
||||||
// Shifted versions, IF DIFFERENT FROM UNSHIFTED!
|
|
||||||
// If any of these are null, the unshifted one will be used.
|
|
||||||
var shiftedKeySym = new Array();
|
|
||||||
shiftedKeySym[18] = 0xFFE7; // alt
|
|
||||||
|
|
||||||
// Single key state/modifier buffer
|
// Single key state/modifier buffer
|
||||||
var modShift = 0;
|
var modShift = 0;
|
||||||
@@ -76,7 +98,6 @@ Guacamole.Keyboard = function(element) {
|
|||||||
|
|
||||||
var keydownChar = new Array();
|
var keydownChar = new Array();
|
||||||
|
|
||||||
|
|
||||||
// ID of routine repeating keystrokes. -1 = not repeating.
|
// ID of routine repeating keystrokes. -1 = not repeating.
|
||||||
var repeatKeyTimeoutId = -1;
|
var repeatKeyTimeoutId = -1;
|
||||||
var repeatKeyIntervalId = -1;
|
var repeatKeyIntervalId = -1;
|
||||||
|
Reference in New Issue
Block a user