From 5c953c81d486274c9252d2b2aa5a031fc9d519ce Mon Sep 17 00:00:00 2001 From: coderaiser Date: Tue, 24 May 2016 22:29:40 +0300 Subject: [PATCH] fix(key) add key.identifier back for chrome <= v51 --- lib/client/key.js | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/lib/client/key.js b/lib/client/key.js index 507a8b66..4f526e34 100644 --- a/lib/client/key.js +++ b/lib/client/key.js @@ -101,7 +101,7 @@ var CloudCmd, Util, DOM; Binded = true; }; - function listener(event) { + function listener(event) { /* get selected file */ var keyCode = event.keyCode, alt = event.altKey, @@ -110,7 +110,17 @@ var CloudCmd, Util, DOM; meta = event.metaKey, isBetween = keyCode >= KEY.ZERO && keyCode <= KEY.Z, isSymbol, + char = ''; + + /* + * event.keyIdentifier deprecated in chrome v51 + * but event.key is absent in chrome <= v51 + */ + + if (event.key) char = event.key; + else + char = fromCharCode(event.keyIdentifier); isSymbol = ~['.', '_', '-', '+', '='].indexOf(char); @@ -151,6 +161,14 @@ var CloudCmd, Util, DOM; return char; } + function fromCharCode(keyIdentifier) { + var code = keyIdentifier.substring(2), + hex = parseInt(code, 16), + char = String.fromCharCode(hex); + + return char; + } + function setCurrentByChar(char) { var name, isMatch, byName, firstByName, skipCount = 0,