From f1c4f28536f3b5e2e0cc37c67d71f224504cce79 Mon Sep 17 00:00:00 2001 From: gdh1995 Date: Thu, 18 Aug 2016 10:57:01 +0800 Subject: support mapping Chrome stop using to go back, but some still wants this feature. This should fix #2207 and #2214. --- lib/keyboard_utils.coffee | 3 +++ 1 file changed, 3 insertions(+) (limited to 'lib/keyboard_utils.coffee') diff --git a/lib/keyboard_utils.coffee b/lib/keyboard_utils.coffee index f997b455..65c67ec0 100644 --- a/lib/keyboard_utils.coffee +++ b/lib/keyboard_utils.coffee @@ -49,6 +49,8 @@ KeyboardUtils = event.key.toLowerCase() # F1 to F9. else if event.key.length == 3 and "F10" <= event.key <= "F12" event.key.toLowerCase() # F10 to F12. + else if event.key.length > 3 and event.key in ["Backspace"] + event.key.toLowerCase() # F10 to F12. else "" @@ -60,6 +62,7 @@ KeyboardUtils = if (event.keyCode >= @keyCodes.f1 && event.keyCode <= @keyCodes.f12) return "f" + (1 + event.keyCode - keyCodes.f1) return "" + return "backspace" if event.keyIdentifier == "U+0008" keyIdentifier = event.keyIdentifier # On Windows, the keyIdentifiers for non-letter keys are incorrect. See -- cgit v1.2.3 From 3a7a1ab035181ab1346181d8bdda5db5038b9c89 Mon Sep 17 00:00:00 2001 From: gdh1995 Date: Sat, 10 Sep 2016 14:58:26 +0800 Subject: simpler logic to detect backsapce --- lib/keyboard_utils.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib/keyboard_utils.coffee') diff --git a/lib/keyboard_utils.coffee b/lib/keyboard_utils.coffee index 65c67ec0..c5dbd69a 100644 --- a/lib/keyboard_utils.coffee +++ b/lib/keyboard_utils.coffee @@ -49,8 +49,8 @@ KeyboardUtils = event.key.toLowerCase() # F1 to F9. else if event.key.length == 3 and "F10" <= event.key <= "F12" event.key.toLowerCase() # F10 to F12. - else if event.key.length > 3 and event.key in ["Backspace"] - event.key.toLowerCase() # F10 to F12. + else if event.key == "Backspace" + event.key.toLowerCase() # Backspace. else "" -- cgit v1.2.3 From 36afaafc98708a8c0f3915e0c494fcc94bf65b3e Mon Sep 17 00:00:00 2001 From: gdh1995 Date: Sat, 17 Sep 2016 15:27:39 +0800 Subject: use keyNames to check backspace keyCode --- lib/keyboard_utils.coffee | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'lib/keyboard_utils.coffee') diff --git a/lib/keyboard_utils.coffee b/lib/keyboard_utils.coffee index c5dbd69a..4f8336c7 100644 --- a/lib/keyboard_utils.coffee +++ b/lib/keyboard_utils.coffee @@ -4,7 +4,7 @@ KeyboardUtils = f12: 123, tab: 9, downArrow: 40, upArrow: 38 } keyNames: - { 37: "left", 38: "up", 39: "right", 40: "down", 32: "space" } + { 37: "left", 38: "up", 39: "right", 40: "down", 32: "space", 8: "backspace" } # This is a mapping of the incorrect keyIdentifiers generated by Webkit on Windows during keydown events to # the correct identifiers, which are correctly generated on Mac. We require this mapping to properly handle @@ -49,8 +49,6 @@ KeyboardUtils = event.key.toLowerCase() # F1 to F9. else if event.key.length == 3 and "F10" <= event.key <= "F12" event.key.toLowerCase() # F10 to F12. - else if event.key == "Backspace" - event.key.toLowerCase() # Backspace. else "" -- cgit v1.2.3 From 9f0ec8cd06903fc25d65b0b82cf8e5fb4e9f5c7a Mon Sep 17 00:00:00 2001 From: Stephen Blott Date: Sat, 17 Sep 2016 11:05:06 +0100 Subject: Rework #2223 (backspace). --- lib/keyboard_utils.coffee | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) (limited to 'lib/keyboard_utils.coffee') 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]) -- cgit v1.2.3