From 8a4506066a12b73bc0c4871bd0381bad464b948a Mon Sep 17 00:00:00 2001 From: Stefan Haller Date: Wed, 19 Mar 2025 09:09:12 +0100 Subject: [PATCH] Add pageUp/pageDown/top/bottom keybindings to focused command log panel --- pkg/gui/extras_panel.go | 32 ++++++++++++++++++++++++++++++++ pkg/gui/keybindings.go | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) diff --git a/pkg/gui/extras_panel.go b/pkg/gui/extras_panel.go index 96fa225d3..0c3f20cd5 100644 --- a/pkg/gui/extras_panel.go +++ b/pkg/gui/extras_panel.go @@ -58,6 +58,38 @@ func (gui *Gui) scrollDownExtra() error { return nil } +func (gui *Gui) pageUpExtrasPanel() error { + gui.Views.Extras.Autoscroll = false + + gui.Views.Extras.ScrollUp(gui.Contexts().CommandLog.GetViewTrait().PageDelta()) + + return nil +} + +func (gui *Gui) pageDownExtrasPanel() error { + gui.Views.Extras.Autoscroll = false + + gui.Views.Extras.ScrollDown(gui.Contexts().CommandLog.GetViewTrait().PageDelta()) + + return nil +} + +func (gui *Gui) goToExtrasPanelTop() error { + gui.Views.Extras.Autoscroll = false + + gui.Views.Extras.ScrollUp(gui.Views.Extras.ViewLinesHeight()) + + return nil +} + +func (gui *Gui) goToExtrasPanelBottom() error { + gui.Views.Extras.Autoscroll = true + + gui.Views.Extras.ScrollDown(gui.Views.Extras.ViewLinesHeight()) + + return nil +} + func (gui *Gui) getCmdWriter() io.Writer { return &prefixWriter{writer: gui.Views.Extras, prefix: style.FgMagenta.Sprintf("\n\n%s\n", gui.c.Tr.GitOutput)} } diff --git a/pkg/gui/keybindings.go b/pkg/gui/keybindings.go index 54c639145..e52f9a815 100644 --- a/pkg/gui/keybindings.go +++ b/pkg/gui/keybindings.go @@ -341,6 +341,42 @@ func (self *Gui) GetInitialKeybindings() ([]*types.Binding, []*gocui.ViewMouseBi Modifier: gocui.ModNone, Handler: self.scrollDownExtra, }, + { + ViewName: "extras", + Key: opts.GetKey(opts.Config.Universal.NextPage), + Modifier: gocui.ModNone, + Handler: self.pageDownExtrasPanel, + }, + { + ViewName: "extras", + Key: opts.GetKey(opts.Config.Universal.PrevPage), + Modifier: gocui.ModNone, + Handler: self.pageUpExtrasPanel, + }, + { + ViewName: "extras", + Key: opts.GetKey(opts.Config.Universal.GotoTop), + Modifier: gocui.ModNone, + Handler: self.goToExtrasPanelTop, + }, + { + ViewName: "extras", + Key: opts.GetKey(opts.Config.Universal.GotoTopAlt), + Modifier: gocui.ModNone, + Handler: self.goToExtrasPanelTop, + }, + { + ViewName: "extras", + Key: opts.GetKey(opts.Config.Universal.GotoBottom), + Modifier: gocui.ModNone, + Handler: self.goToExtrasPanelBottom, + }, + { + ViewName: "extras", + Key: opts.GetKey(opts.Config.Universal.GotoBottomAlt), + Modifier: gocui.ModNone, + Handler: self.goToExtrasPanelBottom, + }, { ViewName: "extras", Tag: "navigation",