diff options
Diffstat (limited to 'pkg/gui/global_handlers.go')
-rw-r--r-- | pkg/gui/global_handlers.go | 47 |
1 files changed, 37 insertions, 10 deletions
diff --git a/pkg/gui/global_handlers.go b/pkg/gui/global_handlers.go index 97cf4650d..0844b8ebe 100644 --- a/pkg/gui/global_handlers.go +++ b/pkg/gui/global_handlers.go @@ -15,8 +15,9 @@ 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 { - for _, view := range []*gocui.View{gui.Views.Branches, gui.Views.Commits} { - if err := gui.rerenderView(view); err != nil { + // for now we re-render all list views. + for _, context := range gui.getListContexts() { + if err := gui.rerenderView(context.GetView()); err != nil { return err } } @@ -24,7 +25,6 @@ func (gui *Gui) rerenderViewsWithScreenModeDependentContent() error { return nil } -// TODO: GENERICS func nextIntInCycle(sl []WindowMaximisation, current WindowMaximisation) WindowMaximisation { for i, val := range sl { if val == current { @@ -37,7 +37,6 @@ func nextIntInCycle(sl []WindowMaximisation, current WindowMaximisation) WindowM return sl[0] } -// TODO: GENERICS func prevIntInCycle(sl []WindowMaximisation, current WindowMaximisation) WindowMaximisation { for i, val := range sl { if val == current { @@ -80,7 +79,14 @@ func (gui *Gui) scrollUpMain() error { gui.State.Panels.Merging.UserVerticalScrolling = true } - gui.scrollUpView(gui.Views.Main) + var view *gocui.View + if gui.c.CurrentContext().GetWindowName() == "secondary" { + view = gui.secondaryView() + } else { + view = gui.mainView() + } + + gui.scrollUpView(view) return nil } @@ -90,19 +96,38 @@ func (gui *Gui) scrollDownMain() error { gui.State.Panels.Merging.UserVerticalScrolling = true } - gui.scrollDownView(gui.Views.Main) + var view *gocui.View + if gui.c.CurrentContext().GetWindowName() == "secondary" { + view = gui.secondaryView() + } else { + view = gui.mainView() + } + + gui.scrollDownView(view) return nil } +func (gui *Gui) mainView() *gocui.View { + viewName := gui.getViewNameForWindow("main") + view, _ := gui.g.View(viewName) + return view +} + +func (gui *Gui) secondaryView() *gocui.View { + viewName := gui.getViewNameForWindow("secondary") + view, _ := gui.g.View(viewName) + return view +} + func (gui *Gui) scrollLeftMain() error { - gui.scrollLeft(gui.Views.Main) + gui.scrollLeft(gui.mainView()) return nil } func (gui *Gui) scrollRightMain() error { - gui.scrollRight(gui.Views.Main) + gui.scrollRight(gui.mainView()) return nil } @@ -117,13 +142,15 @@ func (gui *Gui) scrollRight(view *gocui.View) { } func (gui *Gui) scrollUpSecondary() error { - gui.scrollUpView(gui.Views.Secondary) + gui.scrollUpView(gui.secondaryView()) return nil } func (gui *Gui) scrollDownSecondary() error { - gui.scrollDownView(gui.Views.Secondary) + secondaryView := gui.secondaryView() + + gui.scrollDownView(secondaryView) return nil } |