From 54b77bee1cfab13d34d078d05a20678412dfba6a Mon Sep 17 00:00:00 2001 From: Stephen Blott Date: Thu, 31 Aug 2017 16:21:59 +0100 Subject: Add ignoreKeyboardLayout option (under advanced). --- lib/settings.coffee | 1 + pages/options.coffee | 1 + pages/options.html | 14 ++++++++++++++ 3 files changed, 16 insertions(+) diff --git a/lib/settings.coffee b/lib/settings.coffee index 62dc09e7..f5fc16b0 100644 --- a/lib/settings.coffee +++ b/lib/settings.coffee @@ -193,6 +193,7 @@ Settings = helpDialog_showAdvancedCommands: false optionsPage_showAdvancedOptions: false passNextKeyKeys: [] + ignoreKeyboardLayout: false Settings.init() diff --git a/pages/options.coffee b/pages/options.coffee index 8683b7ed..5e247720 100644 --- a/pages/options.coffee +++ b/pages/options.coffee @@ -193,6 +193,7 @@ Options = nextPatterns: NonEmptyTextOption previousPatterns: NonEmptyTextOption regexFindMode: CheckBoxOption + ignoreKeyboardLayout: CheckBoxOption scrollStepSize: NumberOption smoothScroll: CheckBoxOption grabBackFocus: CheckBoxOption diff --git a/pages/options.html b/pages/options.html index 80d3e61f..27519ccf 100644 --- a/pages/options.html +++ b/pages/options.html @@ -206,6 +206,20 @@ b: http://b.com/?q=%s description + + + +
+
+ This is useful for non-Latin keyboards. +
+
+ + + Previous patterns -- cgit v1.2.3 From 28f6702b4e8fd5a21f2f1484a99732e703c5f37c Mon Sep 17 00:00:00 2001 From: Stephen Blott Date: Fri, 1 Sep 2017 11:27:39 +0100 Subject: Implement ignoreKeyboardLayout option in getKeyChar. Fixes #2618. --- lib/keyboard_utils.coffee | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/lib/keyboard_utils.coffee b/lib/keyboard_utils.coffee index 5f37ddd0..dc6b6269 100644 --- a/lib/keyboard_utils.coffee +++ b/lib/keyboard_utils.coffee @@ -16,17 +16,24 @@ KeyboardUtils = @platform = "Windows" getKeyChar: (event) -> - if event.key of @keyNames - @keyNames[event.key] - # It appears that event.key is not always defined (see #2453). - else if not event.key? + unless Settings.get "ignoreKeyboardLayout" + key = event.key + else + key = event.code + key = key[3..] if key[...3] == "Key" + key = key.toLowerCase() unless event.shiftKey + + if key of @keyNames + @keyNames[key] + # It appears that key is not always defined (see #2453). + else if not key? "" - else if event.key.length == 1 - event.key - else if event.key.length == 2 and "F1" <= event.key <= "F9" - 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 key.length == 1 + key + else if key.length == 2 and "F1" <= key <= "F9" + key.toLowerCase() # F1 to F9. + else if key.length == 3 and "F10" <= key <= "F12" + key.toLowerCase() # F10 to F12. else "" -- cgit v1.2.3 From c48a2affc3c62fe60cb60cdc0e0c5a67bf08214a Mon Sep 17 00:00:00 2001 From: Stephen Blott Date: Fri, 1 Sep 2017 11:33:28 +0100 Subject: Include Settings in Vomnibar page. --- pages/vomnibar.html | 1 + 1 file changed, 1 insertion(+) diff --git a/pages/vomnibar.html b/pages/vomnibar.html index 87acc081..19736d78 100644 --- a/pages/vomnibar.html +++ b/pages/vomnibar.html @@ -2,6 +2,7 @@ Vomnibar + -- cgit v1.2.3 From 02c09ba0dd0ff9573eb4d32d66fda5c0928c4d2c Mon Sep 17 00:00:00 2001 From: Stephen Blott Date: Fri, 1 Sep 2017 13:27:27 +0100 Subject: Better explanation of ignoreKeyboardLayout. --- pages/options.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pages/options.html b/pages/options.html index 27519ccf..c8f5afe0 100644 --- a/pages/options.html +++ b/pages/options.html @@ -211,7 +211,8 @@ b: http://b.com/?q=%s description
- This is useful for non-Latin keyboards. + This forces the use of en-US QWERTY layout and + can be helpful for non-Latin keyboards.