aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Blott2016-09-17 11:05:06 +0100
committerStephen Blott2016-09-17 11:05:06 +0100
commit9f0ec8cd06903fc25d65b0b82cf8e5fb4e9f5c7a (patch)
tree84ea2eb61fa0776988de411fe3e43b5ed716156c
parent36afaafc98708a8c0f3915e0c494fcc94bf65b3e (diff)
downloadvimium-9f0ec8cd06903fc25d65b0b82cf8e5fb4e9f5c7a.tar.bz2
Rework #2223 (backspace).
-rw-r--r--lib/keyboard_utils.coffee21
1 files changed, 13 insertions, 8 deletions
diff --git a/lib/keyboard_utils.coffee b/lib/keyboard_utils.coffee
index 4f8336c7..3871b066 100644
--- a/lib/keyboard_utils.coffee
+++ b/lib/keyboard_utils.coffee
@@ -53,16 +53,21 @@ KeyboardUtils =
""
getKeyCharUsingKeyIdentifier: (event) ->
- # Not a letter
- if (event.keyIdentifier.slice(0, 2) != "U+")
- return @keyNames[event.keyCode] if (@keyNames[event.keyCode])
- # F-key
- if (event.keyCode >= @keyCodes.f1 && event.keyCode <= @keyCodes.f12)
- return "f" + (1 + event.keyCode - keyCodes.f1)
- return ""
- return "backspace" if event.keyIdentifier == "U+0008"
+ # Handle named keys.
+ keyCode = event.keyCode
+ if keyCode
+ if keyCode of @keyNames
+ return @keyNames[keyCode]
+ # Function keys.
+ if @keyCodes.f1 <= keyCode <= @keyCodes.f12
+ return "f" + (1 + keyCode - keyCodes.f1)
keyIdentifier = event.keyIdentifier
+
+ # Not a letter.
+ if not keyIdentifier.startsWith "U+"
+ return ""
+
# On Windows, the keyIdentifiers for non-letter keys are incorrect. See
# https://bugs.webkit.org/show_bug.cgi?id=19906 for more details.
if ((@platform == "Windows" || @platform == "Linux") && @keyIdentifierCorrectionMap[keyIdentifier])