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
+
| 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.
|