Implement decoding of mouse events in Go

This commit is contained in:
Kovid Goyal
2023-03-07 07:20:46 +05:30
parent 16c7681c7c
commit 37cebbc817
3 changed files with 126 additions and 0 deletions

View File

@@ -73,12 +73,26 @@ func (self *Loop) handle_csi(raw []byte) error {
if ke != nil {
return self.handle_key_event(ke)
}
sz, err := self.ScreenSize()
if err == nil {
me := MouseEventFromCSI(csi, sz)
if me != nil {
return self.handle_mouse_event(me)
}
}
if self.OnEscapeCode != nil {
return self.OnEscapeCode(CSI, raw)
}
return nil
}
func (self *Loop) handle_mouse_event(ev *MouseEvent) error {
if self.OnMouseEvent != nil {
return self.OnMouseEvent(ev)
}
return nil
}
func (self *Loop) handle_key_event(ev *KeyEvent) error {
if self.OnKeyEvent != nil {
err := self.OnKeyEvent(ev)