summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/options.go4
-rw-r--r--src/terminal.go15
2 files changed, 19 insertions, 0 deletions
diff --git a/src/options.go b/src/options.go
index 1c650a2f..b4f74e95 100644
--- a/src/options.go
+++ b/src/options.go
@@ -1179,6 +1179,10 @@ func parseActionList(masked string, original string, prevActions []*action, putA
appendAction(actTogglePreviewWrap)
case "toggle-sort":
appendAction(actToggleSort)
+ case "offset-up":
+ appendAction(actOffsetUp)
+ case "offset-down":
+ appendAction(actOffsetDown)
case "preview-top":
appendAction(actPreviewTop)
case "preview-bottom":
diff --git a/src/terminal.go b/src/terminal.go
index 56e472ce..ce25bb16 100644
--- a/src/terminal.go
+++ b/src/terminal.go
@@ -378,6 +378,8 @@ const (
actPosition
actHalfPageUp
actHalfPageDown
+ actOffsetUp
+ actOffsetDown
actJump
actJumpAccept
actPrintQuery
@@ -3404,6 +3406,19 @@ func (t *Terminal) Loop() {
case actHalfPageDown:
t.vmove(-(t.maxItems() / 2), false)
req(reqList)
+ case actOffsetUp, actOffsetDown:
+ diff := 1
+ if a.t == actOffsetDown {
+ diff = -1
+ }
+ t.offset += diff
+ before := t.offset
+ t.constrain()
+ if before != t.offset {
+ t.offset = before
+ t.vmove(diff, false)
+ }
+ req(reqList)
case actJump:
t.jumping = jumpEnabled
req(reqJump)