From 70c8707064d4f6f437cd1f5de0fe23e578f7d45f Mon Sep 17 00:00:00 2001 From: Corey Johnson Date: Wed, 9 Nov 2011 13:58:42 -0800 Subject: [PATCH] The shift key is basically ignored now. Fixes #47. We probably still want to handle the case where someone does `cmd-shift-a` by automatically upcasing `a`. This will only with with alpha keys though. --- src/key-binder.coffee | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/key-binder.coffee b/src/key-binder.coffee index aae77e7c4..0e2401b70 100644 --- a/src/key-binder.coffee +++ b/src/key-binder.coffee @@ -46,10 +46,9 @@ class KeyBinder @handleEvent: (event) -> keys = [] keys.push @modifierKeys.command if event.modifierFlags & OSX.NSCommandKeyMask - keys.push @modifierKeys.shift if event.modifierFlags & OSX.NSShiftKeyMask keys.push @modifierKeys.control if event.modifierFlags & OSX.NSControlKeyMask keys.push @modifierKeys.alt if event.modifierFlags & OSX.NSAlternateKeyMask - keys.push event.charactersIgnoringModifiers.toLowerCase().charCodeAt 0 + keys.push event.charactersIgnoringModifiers.charCodeAt 0 binding = keys.sort().join "-" @@ -71,16 +70,16 @@ class KeyBinder key = null for k in keys - k = k.toLowerCase() - if @modifierKeys[k] - modifiers.push @modifierKeys[k] + if modifier = @modifierKeys[k.toLowerCase()] + modifiers.push modifier unless modifier == @modifierKeys['shift'] # Shift is implied? YES else if key throw "#{@name}: #{binding} specifies TWO keys, we don't handle that yet." - else if @namedKeys[k] - key = @namedKeys[k] + else if namedKey = @namedKeys[k.toLowerCase()] + key = namedKey else if k.length > 1 throw "#{@name}: #{binding} uses an unknown key #{k}." else + charCode = k.charCodeAt 0 key = k.charCodeAt 0 modifiers.concat(key).sort().join "-"