Limit cursor movement in detail views

pull/29/head
rkfg 3 years ago
parent b9253086e1
commit 2351421622

@ -14,10 +14,14 @@ func Down(v View) error {
return nil
}
cx, cy := v.Cursor()
ox, oy := v.Origin()
_, _, sy, _ := v.Speed()
_, fs := v.Limits()
if cy+oy+sy >= fs {
return nil
}
err := v.SetCursor(cx, cy+sy)
if err != nil {
ox, oy := v.Origin()
err := v.SetOrigin(ox, oy+sy)
if err != nil {
return err

@ -49,7 +49,9 @@ func (c Channel) Speed() (int, int, int, int) {
}
func (c Channel) Limits() (pageSize int, fullSize int) {
return 0, 0
_, pageSize = c.view.Size()
fullSize = len(c.view.BufferLines()) - 1
return
}
func (c *Channel) SetCursor(x, y int) error {

@ -43,7 +43,9 @@ func (h Help) Speed() (int, int, int, int) {
}
func (h Help) Limits() (pageSize int, fullSize int) {
return 0, 0
_, pageSize = h.view.Size()
fullSize = len(h.view.BufferLines()) - 1
return
}
func (h *Help) SetCursor(x, y int) error {

@ -137,6 +137,9 @@ func (c *Routing) Speed() (int, int, int, int) {
func (c *Routing) Limits() (pageSize int, fullSize int) {
_, pageSize = c.view.Size()
fullSize = len(c.routingEvents.Log)
if pageSize < fullSize {
fullSize = pageSize
}
return
}

@ -48,7 +48,9 @@ func (c Transaction) Speed() (int, int, int, int) {
}
func (c Transaction) Limits() (pageSize int, fullSize int) {
return 0, 0
_, pageSize = c.view.Size()
fullSize = len(c.view.BufferLines()) - 1
return
}
func (c *Transaction) SetCursor(x, y int) error {

Loading…
Cancel
Save