From 2b783d1bc6c162ac889a85d2019276be6a63ad6f Mon Sep 17 00:00:00 2001 From: Stefan Haller Date: Wed, 19 Mar 2025 08:45:13 +0100 Subject: [PATCH 1/2] Add pageUp/pageDown/top/bottom keybindings to confirmation panel --- pkg/gui/global_handlers.go | 40 ++++++++++++++++++++++++++++++++++++++ pkg/gui/keybindings.go | 36 ++++++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+) diff --git a/pkg/gui/global_handlers.go b/pkg/gui/global_handlers.go index 9721b4b2ab0..0301cf63edb 100644 --- a/pkg/gui/global_handlers.go +++ b/pkg/gui/global_handlers.go @@ -109,6 +109,46 @@ func (gui *Gui) scrollDownConfirmationPanel() error { return nil } +func (gui *Gui) pageUpConfirmationPanel() error { + if gui.Views.Confirmation.Editable { + return nil + } + + gui.Views.Confirmation.ScrollUp(gui.Contexts().Confirmation.GetViewTrait().PageDelta()) + + return nil +} + +func (gui *Gui) pageDownConfirmationPanel() error { + if gui.Views.Confirmation.Editable { + return nil + } + + gui.Views.Confirmation.ScrollDown(gui.Contexts().Confirmation.GetViewTrait().PageDelta()) + + return nil +} + +func (gui *Gui) goToConfirmationPanelTop() error { + if gui.Views.Confirmation.Editable { + return nil + } + + gui.Views.Confirmation.ScrollUp(gui.Views.Confirmation.ViewLinesHeight()) + + return nil +} + +func (gui *Gui) goToConfirmationPanelBottom() error { + if gui.Views.Confirmation.Editable { + return nil + } + + gui.Views.Confirmation.ScrollDown(gui.Views.Confirmation.ViewLinesHeight()) + + return nil +} + func (gui *Gui) handleCopySelectedSideContextItemToClipboard() error { return gui.handleCopySelectedSideContextItemToClipboardWithTruncation(-1) } diff --git a/pkg/gui/keybindings.go b/pkg/gui/keybindings.go index 20163b90bf2..54c639145c5 100644 --- a/pkg/gui/keybindings.go +++ b/pkg/gui/keybindings.go @@ -260,6 +260,42 @@ func (self *Gui) GetInitialKeybindings() ([]*types.Binding, []*gocui.ViewMouseBi Key: gocui.MouseWheelDown, Handler: self.scrollDownConfirmationPanel, }, + { + ViewName: "confirmation", + Key: opts.GetKey(opts.Config.Universal.NextPage), + Modifier: gocui.ModNone, + Handler: self.pageDownConfirmationPanel, + }, + { + ViewName: "confirmation", + Key: opts.GetKey(opts.Config.Universal.PrevPage), + Modifier: gocui.ModNone, + Handler: self.pageUpConfirmationPanel, + }, + { + ViewName: "confirmation", + Key: opts.GetKey(opts.Config.Universal.GotoTop), + Modifier: gocui.ModNone, + Handler: self.goToConfirmationPanelTop, + }, + { + ViewName: "confirmation", + Key: opts.GetKey(opts.Config.Universal.GotoTopAlt), + Modifier: gocui.ModNone, + Handler: self.goToConfirmationPanelTop, + }, + { + ViewName: "confirmation", + Key: opts.GetKey(opts.Config.Universal.GotoBottom), + Modifier: gocui.ModNone, + Handler: self.goToConfirmationPanelBottom, + }, + { + ViewName: "confirmation", + Key: opts.GetKey(opts.Config.Universal.GotoBottomAlt), + Modifier: gocui.ModNone, + Handler: self.goToConfirmationPanelBottom, + }, { ViewName: "submodules", Key: opts.GetKey(opts.Config.Universal.CopyToClipboard), From 8a4506066a12b73bc0c4871bd0381bad464b948a Mon Sep 17 00:00:00 2001 From: Stefan Haller Date: Wed, 19 Mar 2025 09:09:12 +0100 Subject: [PATCH 2/2] 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 96fa225d325..0c3f20cd5c1 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 54c639145c5..e52f9a81534 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",