From 2789c16e25416a6763c075a1b7718973a83403ef Mon Sep 17 00:00:00 2001 From: Stephen Blott Date: Thu, 2 Jun 2016 06:18:36 +0100 Subject: Favour event.keyIdentifier over event.key. See #2147. Chromium's implementation of event.key currently fails to take account of keyboard mappings (e.g. neo2). Here, we favour using event.keyIdentifier (while it's available) as a workaround. --- lib/keyboard_utils.coffee | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/keyboard_utils.coffee b/lib/keyboard_utils.coffee index 364ab949..f997b455 100644 --- a/lib/keyboard_utils.coffee +++ b/lib/keyboard_utils.coffee @@ -33,10 +33,12 @@ KeyboardUtils = # We are migrating from using event.keyIdentifier to using event.key. For some period of time, we must # support both. This wrapper can be removed once Chrome 52 is considered too old to support. getKeyChar: (event) -> - if event.key? - @getKeyCharUsingKey event - else + # We favor using event.keyIdentifier due to Chromium's currently (Chrome 51) incorrect implementataion of + # event.key; see #2147. + if event.keyIdentifier? @getKeyCharUsingKeyIdentifier event + else + @getKeyCharUsingKey event getKeyCharUsingKey: (event) -> if event.keyCode of @keyNames -- cgit v1.2.3