fix jiggle when scrolloff is maxed

This commit is contained in:
Gokcehan 2016-09-02 22:47:11 +03:00
parent 826787450a
commit 188bd97b3b
2 changed files with 6 additions and 2 deletions

View File

@ -39,9 +39,8 @@ func (e *SetExpr) eval(app *App, args []string) {
log.Print(msg)
return
}
max := app.ui.wins[0].h/2 - 1
max := app.ui.wins[0].h/2
if n > max {
// TODO: stay at the same row while up/down in the middle
n = max
}
gOpts.scrolloff = n

5
nav.go
View File

@ -260,6 +260,11 @@ func (nav *Nav) down() {
dir.pos++
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, maxind)
}