Fix stringifying mods

This commit is contained in:
Kovid Goyal 2022-08-24 21:56:29 +05:30
parent 4b18b575cd
commit 5dca2a1a25
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
2 changed files with 18 additions and 11 deletions

View File

@ -58,30 +58,30 @@ func (self KeyEventType) String() string {
}
}
func (self *KeyModifiers) String() string {
func (self KeyModifiers) String() string {
ans := make([]string, 0)
if *self&SHIFT != 0 {
if self&SHIFT != 0 {
ans = append(ans, "shift")
}
if *self&ALT != 0 {
if self&ALT != 0 {
ans = append(ans, "alt")
}
if *self&CTRL != 0 {
if self&CTRL != 0 {
ans = append(ans, "ctrl")
}
if *self&SUPER != 0 {
if self&SUPER != 0 {
ans = append(ans, "super")
}
if *self&HYPER != 0 {
if self&HYPER != 0 {
ans = append(ans, "hyper")
}
if *self&META != 0 {
if self&META != 0 {
ans = append(ans, "meta")
}
if *self&CAPS_LOCK != 0 {
if self&CAPS_LOCK != 0 {
ans = append(ans, "caps_lock")
}
if *self&NUM_LOCK != 0 {
if self&NUM_LOCK != 0 {
ans = append(ans, "num_lock")
}
return strings.Join(ans, "+")

View File

@ -46,9 +46,16 @@ type Loop struct {
write_buf []byte
// Callbacks
// Called when the terminal has been fully setup. Any string returned is sent to
// the terminal on shutdown
OnInitialize func(loop *Loop) string
OnKeyEvent func(loop *Loop, event *KeyEvent) error
OnText func(loop *Loop, text string, from_key_event bool, in_bracketed_paste bool) error
// Called when a key event happens
OnKeyEvent func(loop *Loop, event *KeyEvent) error
// Called when text is received either from a key event or directly from the terminal
OnText func(loop *Loop, text string, from_key_event bool, in_bracketed_paste bool) error
}
func (self *Loop) handle_csi(raw []byte) error {