summaryrefslogtreecommitdiffstats
path: root/pkg/gui/global_handlers.go
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2021-11-02 20:35:53 +1100
committerJesse Duffield <jessedduffield@gmail.com>2021-11-05 07:58:21 +1100
commit37be9dbea18f52a544a1dd134657c02c1ee61aef (patch)
treea18a51d7f998e41a76a2268c897d34133241229b /pkg/gui/global_handlers.go
parentf6ec7babf55c4a43bc8048e8a84970a8de8250b9 (diff)
support scrolling left and right
Diffstat (limited to 'pkg/gui/global_handlers.go')
-rw-r--r--pkg/gui/global_handlers.go27
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)
}