@@ -390,6 +390,36 @@ Utils.type = function(doc, element, text, jsTimer, releaseModifiers,
390
390
} else if ( c == '\'' || c == '"' ) {
391
391
keyCode = Components . interfaces . nsIDOMKeyEvent . DOM_VK_QUOTE ;
392
392
charCode = c . charCodeAt ( 0 ) ;
393
+ } else if ( c == '^' ) {
394
+ keyCode = Components . interfaces . nsIDOMKeyEvent . DOM_VK_CIRCUMFLEX ;
395
+ charCode = c . charCodeAt ( 0 ) ;
396
+ } else if ( c == '!' ) {
397
+ keyCode = Components . interfaces . nsIDOMKeyEvent . DOM_VK_EXCLAMATION ;
398
+ charCode = c . charCodeAt ( 0 ) ;
399
+ } else if ( c == '#' ) {
400
+ keyCode = Components . interfaces . nsIDOMKeyEvent . DOM_VK_HASH ;
401
+ charCode = c . charCodeAt ( 0 ) ;
402
+ } else if ( c == '$' ) {
403
+ keyCode = Components . interfaces . nsIDOMKeyEvent . DOM_VK_DOLLAR ;
404
+ charCode = c . charCodeAt ( 0 ) ;
405
+ } else if ( c == '%' ) {
406
+ keyCode = Components . interfaces . nsIDOMKeyEvent . DOM_VK_PERCENT ;
407
+ charCode = c . charCodeAt ( 0 ) ;
408
+ } else if ( c == '&' ) {
409
+ keyCode = Components . interfaces . nsIDOMKeyEvent . DOM_VK_AMPERSAND ;
410
+ charCode = c . charCodeAt ( 0 ) ;
411
+ } else if ( c == '_' ) {
412
+ keyCode = Components . interfaces . nsIDOMKeyEvent . DOM_VK_UNDERSCORE ;
413
+ charCode = c . charCodeAt ( 0 ) ;
414
+ } else if ( c == '-' ) {
415
+ keyCode = Components . interfaces . nsIDOMKeyEvent . DOM_VK_HYPHEN_MINUS ;
416
+ charCode = c . charCodeAt ( 0 ) ;
417
+ } else if ( c == '(' ) {
418
+ keyCode = Components . interfaces . nsIDOMKeyEvent . DOM_VK_OPEN_BRACKET ;
419
+ charCode = c . charCodeAt ( 0 ) ;
420
+ } else if ( c == ')' ) {
421
+ keyCode = Components . interfaces . nsIDOMKeyEvent . DOM_VK_CLOSE_BRACKET ;
422
+ charCode = c . charCodeAt ( 0 ) ;
393
423
} else {
394
424
keyCode = upper . charCodeAt ( i ) ;
395
425
charCode = text . charCodeAt ( i ) ;
0 commit comments