diff --git a/lib/client/key.js b/lib/client/key.js index 9102440e..54968633 100644 --- a/lib/client/key.js +++ b/lib/client/key.js @@ -97,11 +97,13 @@ var CloudCmd, Util, DOM; var keyCode = event.keyCode, alt = event.altKey, ctrl = event.ctrlKey, - meta = event.metaKey; + meta = event.metaKey, + keyIdentifier = event.keyIdentifier, + char = fromCharCode(keyIdentifier); /* если клавиши можно обрабатывать*/ if (Binded) { if (!alt && !ctrl && !meta && keyCode >= KEY.ZERO && keyCode <= KEY.Z) - setCurrentByLetter(keyCode); + setCurrentByLetter(char); else { Chars = []; switchKey(event); @@ -119,14 +121,21 @@ var CloudCmd, Util, DOM; } } - function setCurrentByLetter(pKeyCode) { + function fromCharCode(keyIdentifier) { + var code = keyIdentifier.substring(2), + hex = parseInt(code, 16), + char = String.fromCharCode(hex); + + return char; + } + + function setCurrentByLetter(char) { var i, n, name, isMatch, byName, firstByName, skipCount = 0, skipN = 0, setted = false, current = Info.element, files = Info.files, - char = String.fromCharCode(pKeyCode), regExp = new RegExp('^' + char + '.*$', 'i'); n = Chars.length;