Try to get some compatibility for keys.
I'd thought using the DOM_VK_ names was a good idea. Symbolic names ought to be more portable than opaque numeric constants. Foolish me, expecting things to be sane. Keys now work with FF15 and Chrome 17.
This commit is contained in:
parent
a6ca511e4d
commit
e5a4a55876
3 changed files with 54 additions and 51 deletions
|
|
@ -5,25 +5,29 @@ var numShifts = [41, 33, 64, 35, 36, 37, 94, 38, 42, 40];
|
|||
|
||||
var keyHexCodes = {
|
||||
init: function () {
|
||||
this[KeyboardEvent.DOM_VK_RETURN] = ["0d", "0d"];
|
||||
this[KeyboardEvent.DOM_VK_SPACE] = ["20", "20"];
|
||||
this[KeyboardEvent.DOM_VK_TAB] = ["09", "09"];
|
||||
this[KeyboardEvent.DOM_VK_BACK_QUOTE] = ["60", "7e"];
|
||||
this[KeyboardEvent.DOM_VK_OPEN_BRACKET] = ["5b", "7b"];
|
||||
this[KeyboardEvent.DOM_VK_CLOSE_BRACKET] = ["5d", "7d"];
|
||||
this[KeyboardEvent.DOM_VK_BACK_SLASH] = ["5c", "7c"];
|
||||
this[KeyboardEvent.DOM_VK_SEMICOLON] = ["3b", "3a"];
|
||||
this[KeyboardEvent.DOM_VK_QUOTE] = ["27", "22"];
|
||||
this[KeyboardEvent.DOM_VK_COMMA] = ["2c", "3c"];
|
||||
this[KeyboardEvent.DOM_VK_PERIOD] = ["2e", "3e"];
|
||||
this[KeyboardEvent.DOM_VK_SLASH] = ["2f", "3f"];
|
||||
this[KeyboardEvent.DOM_VK_EQUALS] = ["3d", "2b"];
|
||||
this[KeyboardEvent.DOM_VK_SUBTRACT] = ["2d", "5f"];
|
||||
this[KeyboardEvent.DOM_VK_BACK_SPACE] = ["08", "08"];
|
||||
this[KeyboardEvent.DOM_VK_DELETE] = ["1b5b337e", "1b5b337e"];
|
||||
this[KeyboardEvent.DOM_VK_ESCAPE] = ["1b", "1b"];
|
||||
this[KeyboardEvent.DOM_VK_PAGE_UP] = ["1b5b357e", "1b5b357e"];
|
||||
this[KeyboardEvent.DOM_VK_PAGE_DOWN] = ["1b5b367e", "1b5b367e"];
|
||||
this[13] = ["0d", "0d"]; // return
|
||||
this[32] = ["20", "20"]; // space
|
||||
this[9] = ["09", "09"]; // tab
|
||||
this[192] = ["60", "7e"]; // backtick, tilde
|
||||
this[219] = ["5b", "7b"]; // open bracket, open brace
|
||||
this[221] = ["5d", "7d"]; // close bracket, close brace
|
||||
this[220] = ["5c", "7c"]; // backslash, pipe
|
||||
this[59] = ["3b", "3a"]; // semicolon, colon
|
||||
this[186] = ["3b", "3a"]; // semicolon, colon (Chrome)
|
||||
this[222] = ["27", "22"]; // single quote, double quote
|
||||
this[188] = ["2c", "3c"]; // comma, less than
|
||||
this[190] = ["2e", "3e"]; // period, right angle
|
||||
this[191] = ["2f", "3f"]; // slash, question mark
|
||||
this[61] = ["3d", "2b"]; // equal, plus
|
||||
this[187] = ["3d", "2b"]; // equal, plus (Chrome)
|
||||
this[109] = ["2d", "5f"]; // subtract, underscore (maybe on numpad)
|
||||
this[173] = ["2d", "5f"]; // subtract, underscore (maybe not on numpad)
|
||||
this[189] = ["2d", "5f"]; // subtract, underscore (Chrome)
|
||||
this[8] = ["08", "08"]; // backspace
|
||||
this[46] = ["1b5b337e", "1b5b337e"]; // delete
|
||||
this[27] = ["1b", "1b"]; // escape
|
||||
this[33] = ["1b5b357e", "1b5b357e"]; // page up
|
||||
this[34] = ["1b5b367e", "1b5b367e"]; // page down
|
||||
this.appCursor(false);
|
||||
this.appKeypad(false);
|
||||
},
|
||||
|
|
@ -31,20 +35,20 @@ var keyHexCodes = {
|
|||
appCursor: function (on) {
|
||||
/* Aren't special keys vile? */
|
||||
if (on) {
|
||||
this[KeyboardEvent.DOM_VK_LEFT] = ["1b4f44", "1b4f44"];
|
||||
this[KeyboardEvent.DOM_VK_RIGHT] = ["1b4f43", "1b4f43"];
|
||||
this[KeyboardEvent.DOM_VK_UP] = ["1b4f41", "1b4f41"];
|
||||
this[KeyboardEvent.DOM_VK_DOWN] = ["1b4f42", "1b4f42"];
|
||||
this[KeyboardEvent.DOM_VK_END] = ["1b4f46", "1b4f46"];
|
||||
this[KeyboardEvent.DOM_VK_HOME] = ["1b4f48", "1b4f48"];
|
||||
this[37] = ["1b4f44", "1b4f44"]; // left arror
|
||||
this[39] = ["1b4f43", "1b4f43"]; // right arrow
|
||||
this[38] = ["1b4f41", "1b4f41"]; // up arrow
|
||||
this[40] = ["1b4f42", "1b4f42"]; // down arrow
|
||||
this[35] = ["1b4f46", "1b4f46"]; // end
|
||||
this[36] = ["1b4f48", "1b4f48"]; // home
|
||||
}
|
||||
else {
|
||||
this[KeyboardEvent.DOM_VK_LEFT] = ["1b5b44", "1b5b44"];
|
||||
this[KeyboardEvent.DOM_VK_RIGHT] = ["1b5b43", "1b5b43"];
|
||||
this[KeyboardEvent.DOM_VK_UP] = ["1b5b41", "1b5b41"];
|
||||
this[KeyboardEvent.DOM_VK_DOWN] = ["1b5b42", "1b5b42"];
|
||||
this[KeyboardEvent.DOM_VK_END] = ["1b5b46", "1b5b46"];
|
||||
this[KeyboardEvent.DOM_VK_HOME] = ["1b5b48", "1b5b48"];
|
||||
this[37] = ["1b5b44", "1b5b44"]; // left arror
|
||||
this[39] = ["1b5b43", "1b5b43"]; // right arrow
|
||||
this[38] = ["1b5b41", "1b5b41"]; // up arrow
|
||||
this[40] = ["1b5b42", "1b5b42"]; // down arrow
|
||||
this[35] = ["1b5b46", "1b5b46"]; // end
|
||||
this[36] = ["1b5b48", "1b5b48"]; // home
|
||||
}
|
||||
},
|
||||
appKeypad: function (on) {
|
||||
|
|
@ -52,15 +56,15 @@ var keyHexCodes = {
|
|||
* sequences. Since we can't count on the terminfo description actually
|
||||
* containing those sequences, pretend they're just arrow keys etc.
|
||||
*/
|
||||
this[KeyboardEvent.DOM_VK_NUMPAD1] = ["1b4f46", "1b4f46"];
|
||||
this[KeyboardEvent.DOM_VK_NUMPAD2] = ["1b4f42", "1b4f42"];
|
||||
this[KeyboardEvent.DOM_VK_NUMPAD3] = ["1b5b367e", "1b5b367e"];
|
||||
this[KeyboardEvent.DOM_VK_NUMPAD4] = ["1b4f44", "1b4f44"];
|
||||
this[KeyboardEvent.DOM_VK_NUMPAD5] = ["1b5b45", "1b5b45"];
|
||||
this[KeyboardEvent.DOM_VK_NUMPAD6] = ["1b4f43", "1b4f43"];
|
||||
this[KeyboardEvent.DOM_VK_NUMPAD7] = ["1b4f48", "1b4f48"];
|
||||
this[KeyboardEvent.DOM_VK_NUMPAD8] = ["1b4f41", "1b4f41"];
|
||||
this[KeyboardEvent.DOM_VK_NUMPAD9] = ["1b5b357e", "1b5b357e"];
|
||||
this[97] = ["1b4f46", "1b4f46"];
|
||||
this[98] = ["1b4f42", "1b4f42"];
|
||||
this[99] = ["1b5b367e", "1b5b367e"];
|
||||
this[100] = ["1b4f44", "1b4f44"];
|
||||
this[101] = ["1b5b45", "1b5b45"];
|
||||
this[102] = ["1b4f43", "1b4f43"];
|
||||
this[103] = ["1b4f48", "1b4f48"];
|
||||
this[104] = ["1b4f41", "1b4f41"];
|
||||
this[105] = ["1b5b357e", "1b5b357e"];
|
||||
return;
|
||||
}
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue