diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2021-11-02 20:35:53 +1100 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2021-11-05 07:58:21 +1100 |
commit | 37be9dbea18f52a544a1dd134657c02c1ee61aef (patch) | |
tree | a18a51d7f998e41a76a2268c897d34133241229b /pkg/gui/global_handlers.go | |
parent | f6ec7babf55c4a43bc8048e8a84970a8de8250b9 (diff) |
support scrolling left and right
Diffstat (limited to 'pkg/gui/global_handlers.go')
-rw-r--r-- | pkg/gui/global_handlers.go | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/pkg/gui/global_handlers.go b/pkg/gui/global_handlers.go index b55d6e3a8..c104c1664 100644 --- a/pkg/gui/global_handlers.go +++ b/pkg/gui/global_handlers.go @@ -10,6 +10,8 @@ import ( "github.com/jesseduffield/lazygit/pkg/utils" ) +const HORIZONTAL_SCROLL_FACTOR = 3 + // these views need to be re-rendered when the screen mode changes. The commits view, // for example, will show authorship information in half and full screen mode. func (gui *Gui) rerenderViewsWithScreenModeDependentContent() error { @@ -114,7 +116,7 @@ func (gui *Gui) linesToScrollDown(view *gocui.View) int { func (gui *Gui) scrollUpMain() error { if gui.canScrollMergePanel() { - gui.State.Panels.Merging.UserScrolling = true + gui.State.Panels.Merging.UserVerticalScrolling = true } return gui.scrollUpView(gui.Views.Main) @@ -122,12 +124,33 @@ func (gui *Gui) scrollUpMain() error { func (gui *Gui) scrollDownMain() error { if gui.canScrollMergePanel() { - gui.State.Panels.Merging.UserScrolling = true + gui.State.Panels.Merging.UserVerticalScrolling = true } return gui.scrollDownView(gui.Views.Main) } +func (gui *Gui) scrollLeftMain() error { + gui.scrollLeft(gui.Views.Main) + + return nil +} + +func (gui *Gui) scrollRightMain() error { + gui.scrollRight(gui.Views.Main) + + return nil +} + +func (gui *Gui) scrollLeft(view *gocui.View) { + newOriginX := utils.Max(view.OriginX()-view.InnerWidth()/HORIZONTAL_SCROLL_FACTOR, 0) + _ = view.SetOriginX(newOriginX) +} + +func (gui *Gui) scrollRight(view *gocui.View) { + _ = view.SetOriginX(view.OriginX() + view.InnerWidth()/HORIZONTAL_SCROLL_FACTOR) +} + func (gui *Gui) scrollUpSecondary() error { return gui.scrollUpView(gui.Views.Secondary) } |