Start work on mouse handling in diff kitten
This commit is contained in:
parent
6dfe823dfb
commit
840caf5fd5
@ -133,6 +133,7 @@ func main(_ *cli.Command, opts_ *Options, args []string) (rc int, err error) {
|
||||
return 1, fmt.Errorf("%s does not exist", right)
|
||||
}
|
||||
lp, err = loop.New()
|
||||
loop.MouseTrackingMode(lp, loop.BUTTONS_AND_DRAG_MOUSE_TRACKING)
|
||||
if err != nil {
|
||||
return 1, err
|
||||
}
|
||||
@ -155,6 +156,7 @@ func main(_ *cli.Command, opts_ *Options, args []string) (rc int, err error) {
|
||||
lp.OnResize = h.on_resize
|
||||
lp.OnKeyEvent = h.on_key_event
|
||||
lp.OnText = h.on_text
|
||||
lp.OnMouseEvent = h.on_mouse_event
|
||||
err = lp.Run()
|
||||
if err != nil {
|
||||
return 1, err
|
||||
|
||||
@ -627,3 +627,21 @@ func (self *Handler) dispatch_action(name, args string) error {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (self *Handler) handle_wheel_event(up bool) {
|
||||
if self.logical_lines != nil {
|
||||
amt := 2
|
||||
if up {
|
||||
amt *= -1
|
||||
}
|
||||
self.dispatch_action(`scroll_by`, strconv.Itoa(amt))
|
||||
}
|
||||
}
|
||||
|
||||
func (self *Handler) on_mouse_event(ev *loop.MouseEvent) error {
|
||||
if ev.Event_type == loop.MOUSE_PRESS && ev.Buttons&(loop.MOUSE_WHEEL_UP|loop.MOUSE_WHEEL_DOWN) != 0 {
|
||||
self.handle_wheel_event(ev.Buttons&(loop.MOUSE_WHEEL_UP) != 0)
|
||||
return nil
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user