fix jiggle when scrolloff is maxed
This commit is contained in:
parent
826787450a
commit
188bd97b3b
3
eval.go
3
eval.go
@ -39,9 +39,8 @@ func (e *SetExpr) eval(app *App, args []string) {
|
|||||||
log.Print(msg)
|
log.Print(msg)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
max := app.ui.wins[0].h/2 - 1
|
max := app.ui.wins[0].h/2
|
||||||
if n > max {
|
if n > max {
|
||||||
// TODO: stay at the same row while up/down in the middle
|
|
||||||
n = max
|
n = max
|
||||||
}
|
}
|
||||||
gOpts.scrolloff = n
|
gOpts.scrolloff = n
|
||||||
|
5
nav.go
5
nav.go
@ -260,6 +260,11 @@ func (nav *Nav) down() {
|
|||||||
|
|
||||||
dir.pos++
|
dir.pos++
|
||||||
edge := min(gOpts.scrolloff, maxind-dir.ind)
|
edge := min(gOpts.scrolloff, maxind-dir.ind)
|
||||||
|
|
||||||
|
// use a smaller value when the height is even and scrolloff is maxed
|
||||||
|
// in order to stay at the same row as much as possible while up/down
|
||||||
|
edge = min(edge, nav.height / 2 + nav.height % 2 - 1)
|
||||||
|
|
||||||
dir.pos = min(dir.pos, nav.height-edge-1)
|
dir.pos = min(dir.pos, nav.height-edge-1)
|
||||||
dir.pos = min(dir.pos, maxind)
|
dir.pos = min(dir.pos, maxind)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user