summaryrefslogtreecommitdiffstats
path: root/src/terminal.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/terminal.go')
-rw-r--r--src/terminal.go18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/terminal.go b/src/terminal.go
index a5d54694..2bb785c1 100644
--- a/src/terminal.go
+++ b/src/terminal.go
@@ -316,7 +316,9 @@ const (
actPreviewHalfPageUp
actPreviewHalfPageDown
actPrevHistory
+ actPrevSelected
actNextHistory
+ actNextSelected
actExecute
actExecuteSilent
actExecuteMulti // Deprecated
@@ -3016,6 +3018,22 @@ func (t *Terminal) Loop() {
scrollPreviewTo(t.evaluateScrollOffset())
}
}
+ case actNextSelected, actPrevSelected:
+ if len(t.selected) > 0 {
+ total := t.merger.Length()
+ for i := 1; i < total; i++ {
+ y := (t.cy + i) % total
+ if t.layout == layoutDefault && a.t == actNextSelected ||
+ t.layout != layoutDefault && a.t == actPrevSelected {
+ y = (t.cy - i + total) % total
+ }
+ if _, found := t.selected[t.merger.Get(y).item.Index()]; found {
+ t.vset(y)
+ req(reqList)
+ break
+ }
+ }
+ }
}
return true
}