io/key: switch Event.Name to be a string and add function keys

Function keys don't have a natural rune representation so switch
Event.Name to be a string to fit "F1"-"F12".

Fixes gio#59

Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
Elias Naur
2019-11-08 19:00:43 +01:00
parent c833c98fd7
commit cc43588aba
8 changed files with 169 additions and 59 deletions
+7 -5
View File
@@ -383,17 +383,17 @@ func Main() {
<-mainDone
}
func translateKey(k string) (rune, bool) {
func translateKey(k string) (string, bool) {
if len(k) == 1 {
c := k[0]
if '0' <= c && c <= '9' || 'A' <= c && c <= 'Z' {
return rune(c), true
return string(c), true
}
if 'a' <= c && c <= 'z' {
return rune(c - 0x20), true
return string(c - 0x20), true
}
}
var n rune
var n string
switch k {
case "ArrowUp":
n = key.NameUpArrow
@@ -419,8 +419,10 @@ func translateKey(k string) (rune, bool) {
n = key.NamePageUp
case "PageDown":
n = key.NamePageDown
case "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12":
n = k
default:
return 0, false
return "", false
}
return n, true
}