event/key: add Compose key
Fixes #16332
Change-Id: I4fcd9c4c60fb5c32abaab5b68d3036d536ab2b69
Reviewed-on: https://go-review.googlesource.com/24880
Reviewed-by: Nigel Tao <nigeltao@golang.org>
diff --git a/event/key/code_string.go b/event/key/code_string.go
index e8af6ba..6af78b3 100644
--- a/event/key/code_string.go
+++ b/event/key/code_string.go
@@ -1,4 +1,4 @@
-// generated by stringer -type=Code; DO NOT EDIT
+// Code generated by "stringer -type=Code"; DO NOT EDIT
package key
@@ -13,6 +13,7 @@
_Code_name_5 = "CodeHelp"
_Code_name_6 = "CodeMuteCodeVolumeUpCodeVolumeDown"
_Code_name_7 = "CodeLeftControlCodeLeftShiftCodeLeftAltCodeLeftGUICodeRightControlCodeRightShiftCodeRightAltCodeRightGUI"
+ _Code_name_8 = "CodeCompose"
)
var (
@@ -24,6 +25,7 @@
_Code_index_5 = [...]uint8{0, 8}
_Code_index_6 = [...]uint8{0, 8, 20, 34}
_Code_index_7 = [...]uint8{0, 15, 28, 39, 50, 66, 80, 92, 104}
+ _Code_index_8 = [...]uint8{0, 11}
)
func (i Code) String() string {
@@ -50,6 +52,8 @@
case 224 <= i && i <= 231:
i -= 224
return _Code_name_7[_Code_index_7[i]:_Code_index_7[i+1]]
+ case i == 65536:
+ return _Code_name_8
default:
return fmt.Sprintf("Code(%d)", i)
}
diff --git a/event/key/key.go b/event/key/key.go
index 4a9e694..d70f1c3 100644
--- a/event/key/key.go
+++ b/event/key/key.go
@@ -218,6 +218,17 @@
CodeRightShift Code = 229
CodeRightAlt Code = 230
CodeRightGUI Code = 231
+
+ // The following codes are not part of the standard USB HID Usage IDs for
+ // keyboards. See http://www.usb.org/developers/hidpage/Hut1_12v2.pdf
+ //
+ // Usage IDs are uint16s, so these non-standard values start at 0x10000.
+
+ // CodeCompose is the Code for a compose key, sometimes called a multi key,
+ // used to input non-ASCII characters such as ñ being composed of n and ~.
+ //
+ // See https://en.wikipedia.org/wiki/Compose_key
+ CodeCompose Code = 0x10000
)
// TODO: Given we use runes outside the unicode space, should we provide a