summaryrefslogtreecommitdiffstats
path: root/pkg/gui/view_helpers.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/gui/view_helpers.go')
-rw-r--r--pkg/gui/view_helpers.go88
1 files changed, 19 insertions, 69 deletions
diff --git a/pkg/gui/view_helpers.go b/pkg/gui/view_helpers.go
index 4c5002efe..5b02b1ae9 100644
--- a/pkg/gui/view_helpers.go
+++ b/pkg/gui/view_helpers.go
@@ -16,6 +16,7 @@ func (gui *Gui) refreshSidePanels(g *gocui.Gui) error {
gui.refreshBranches(g)
gui.refreshFiles(g)
gui.refreshCommits(g)
+ gui.refreshStashEntries(g)
return nil
}
@@ -78,18 +79,19 @@ func (gui *Gui) previousView(g *gocui.Gui, v *gocui.View) error {
}
func (gui *Gui) newLineFocused(g *gocui.Gui, v *gocui.View) error {
- mainView, _ := g.View("main")
- mainView.SetOrigin(0, 0)
-
switch v.Name() {
case "menu":
- return gui.handleMenuSelect(g, v)
+ return nil
case "status":
return gui.handleStatusSelect(g, v)
case "files":
return gui.handleFileSelect(g, v)
case "branches":
return gui.handleBranchSelect(g, v)
+ case "commits":
+ return gui.handleCommitSelect(g, v)
+ case "stash":
+ return gui.handleStashEntrySelect(g, v)
case "confirmation":
return nil
case "commitMessage":
@@ -99,10 +101,6 @@ func (gui *Gui) newLineFocused(g *gocui.Gui, v *gocui.View) error {
gui.refreshMergePanel(g)
v.Highlight = false
return nil
- case "commits":
- return gui.handleCommitSelect(g, v)
- case "stash":
- return gui.handleStashEntrySelect(g, v)
case "staging":
return nil
// return gui.handleStagingSelect(g, v)
@@ -165,61 +163,6 @@ func (gui *Gui) switchFocus(g *gocui.Gui, oldView, newView *gocui.View) error {
return gui.newLineFocused(g, newView)
}
-func (gui *Gui) getItemPosition(v *gocui.View) int {
- gui.correctCursor(v)
- _, cy := v.Cursor()
- _, oy := v.Origin()
- return oy + cy
-}
-
-func (gui *Gui) cursorUp(g *gocui.Gui, v *gocui.View) error {
- // swallowing cursor movements in main
- if v == nil || v.Name() == "main" {
- return nil
- }
-
- ox, oy := v.Origin()
- cx, cy := v.Cursor()
- if err := v.SetCursor(cx, cy-1); err != nil && oy > 0 {
- if err := v.SetOrigin(ox, oy-1); err != nil {
- return err
- }
- }
-
- gui.newLineFocused(g, v)
- return nil
-}
-
-func (gui *Gui) cursorDown(g *gocui.Gui, v *gocui.View) error {
- // swallowing cursor movements in main
- if v == nil || v.Name() == "main" {
- return nil
- }
- cx, cy := v.Cursor()
- ox, oy := v.Origin()
- ly := v.LinesHeight() - 1
- _, height := v.Size()
- maxY := height - 1
-
- // if we are at the end we just return
- if cy+oy == ly {
- return nil
- }
-
- var err error
- if cy < maxY {
- err = v.SetCursor(cx, cy+1)
- } else {
- err = v.SetOrigin(ox, oy+1)
- }
- if err != nil {
- return err
- }
-
- gui.newLineFocused(g, v)
- return nil
-}
-
func (gui *Gui) resetOrigin(v *gocui.View) error {
if err := v.SetCursor(0, 0); err != nil {
return err
@@ -228,12 +171,6 @@ func (gui *Gui) resetOrigin(v *gocui.View) error {
}
// if the cursor down past the last item, move it to the last line
-func (gui *Gui) correctCursor(v *gocui.View) error {
- cx, cy := v.Cursor()
- return gui.focusPoint(cx, cy, v)
-}
-
-// if the cursor down past the last item, move it to the last line
func (gui *Gui) focusPoint(cx int, cy int, v *gocui.View) error {
if cy < 0 {
return nil
@@ -283,6 +220,9 @@ func (gui *Gui) renderString(g *gocui.Gui, viewName, s string) error {
return nil
}
v.Clear()
+ if err := v.SetOrigin(0, 0); err != nil {
+ return err
+ }
output := string(bom.Clean([]byte(s)))
output = utils.NormalizeLinefeeds(output)
fmt.Fprint(v, output)
@@ -331,6 +271,16 @@ func (gui *Gui) getStagingView(g *gocui.Gui) *gocui.View {
return v
}
+func (gui *Gui) getMainView(g *gocui.Gui) *gocui.View {
+ v, _ := g.View("main")
+ return v
+}
+
+func (gui *Gui) getStashView(g *gocui.Gui) *gocui.View {
+ v, _ := g.View("stash")
+ return v
+}
+
func (gui *Gui) trimmedContent(v *gocui.View) string {
return strings.TrimSpace(v.Buffer())
}