|
@@ -33,6 +33,7 @@ const (
|
|
XKEY_F10 = 0x102a
|
|
XKEY_F10 = 0x102a
|
|
XKEY_F11 = 0x102b
|
|
XKEY_F11 = 0x102b
|
|
XKEY_F12 = 0x102c
|
|
XKEY_F12 = 0x102c
|
|
|
|
+ XKEY_MOUSE = 0x1100
|
|
XKEY_UNKNOWN = 0x1111
|
|
XKEY_UNKNOWN = 0x1111
|
|
)
|
|
)
|
|
|
|
|
|
@@ -207,7 +208,8 @@ func (d *Door) GetKey() int {
|
|
// Just escape key
|
|
// Just escape key
|
|
return c
|
|
return c
|
|
}
|
|
}
|
|
- var extended string = string(byte(c2))
|
|
|
|
|
|
+ var extended []byte = make([]byte, 1)
|
|
|
|
+ extended[0] = byte(c2) // string = string(byte(c2))
|
|
|
|
|
|
c2 = d.getkey_or_pushback()
|
|
c2 = d.getkey_or_pushback()
|
|
for c2 > 0 {
|
|
for c2 > 0 {
|
|
@@ -215,10 +217,10 @@ func (d *Door) GetKey() int {
|
|
d.Pushback.Push(c2)
|
|
d.Pushback.Push(c2)
|
|
break
|
|
break
|
|
}
|
|
}
|
|
- extended += string(byte(c2))
|
|
|
|
|
|
+ extended = append(extended, byte(c2)) // += string(byte(c2))
|
|
|
|
|
|
var has bool
|
|
var has bool
|
|
- c2, has = extendedKeys[extended]
|
|
|
|
|
|
+ c2, has = extendedKeys[string(extended)]
|
|
if has {
|
|
if has {
|
|
// break out here if \x1b[ + letter or @
|
|
// break out here if \x1b[ + letter or @
|
|
// break out if \x1b[ + digits + ~
|
|
// break out if \x1b[ + digits + ~
|
|
@@ -228,6 +230,14 @@ func (d *Door) GetKey() int {
|
|
c2 = d.getkey_or_pushback()
|
|
c2 = d.getkey_or_pushback()
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if strings.HasPrefix(string(extended), "[M") && len(extended) == 5 {
|
|
|
|
+ Mouse.Button = int(extended[2]) - 0x20 + 1
|
|
|
|
+ Mouse.X = int(extended[3]) - 0x21 + 1
|
|
|
|
+ Mouse.Y = int(extended[4]) - 0x21 + 1
|
|
|
|
+ return XKEY_MOUSE
|
|
|
|
+ // log.Printf("MOUSE %d (%d,%d)\n", mouse_button, mouse_x, mouse_y)
|
|
|
|
+ }
|
|
|
|
+
|
|
log.Printf("ERROR Extended %#v\n", extended)
|
|
log.Printf("ERROR Extended %#v\n", extended)
|
|
return XKEY_UNKNOWN
|
|
return XKEY_UNKNOWN
|
|
}
|
|
}
|