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)
|
return 1, fmt.Errorf("%s does not exist", right)
|
||||||
}
|
}
|
||||||
lp, err = loop.New()
|
lp, err = loop.New()
|
||||||
|
loop.MouseTrackingMode(lp, loop.BUTTONS_AND_DRAG_MOUSE_TRACKING)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 1, err
|
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.OnResize = h.on_resize
|
||||||
lp.OnKeyEvent = h.on_key_event
|
lp.OnKeyEvent = h.on_key_event
|
||||||
lp.OnText = h.on_text
|
lp.OnText = h.on_text
|
||||||
|
lp.OnMouseEvent = h.on_mouse_event
|
||||||
err = lp.Run()
|
err = lp.Run()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 1, err
|
return 1, err
|
||||||
|
|||||||
@ -627,3 +627,21 @@ func (self *Handler) dispatch_action(name, args string) error {
|
|||||||
}
|
}
|
||||||
return nil
|
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