summaryrefslogtreecommitdiffstats
path: root/pkg/gui/branches_panel.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/gui/branches_panel.go')
-rw-r--r--pkg/gui/branches_panel.go44
1 files changed, 23 insertions, 21 deletions
diff --git a/pkg/gui/branches_panel.go b/pkg/gui/branches_panel.go
index 54a9301e2..c47138bd1 100644
--- a/pkg/gui/branches_panel.go
+++ b/pkg/gui/branches_panel.go
@@ -95,9 +95,12 @@ func (gui *Gui) refreshBranches(g *gocui.Gui) error {
}
gui.State.Branches = builder.Build()
- gui.refreshSelectedLine(&gui.State.Panels.Branches.SelectedLine, len(gui.State.Branches))
- if err := gui.RenderSelectedBranchUpstreamDifferences(); err != nil {
- return err
+ // TODO: if we're in the remotes view and we've just deleted a remote we need to refresh accordingly
+ if gui.getBranchesView().Context == "local-branches" {
+ gui.refreshSelectedLine(&gui.State.Panels.Branches.SelectedLine, len(gui.State.Branches))
+ if err := gui.RenderSelectedBranchUpstreamDifferences(); err != nil {
+ return err
+ }
}
return gui.refreshStatus(g)
@@ -105,6 +108,20 @@ func (gui *Gui) refreshBranches(g *gocui.Gui) error {
return nil
}
+func (gui *Gui) renderLocalBranchesWithSelection() error {
+ branchesView := gui.getBranchesView()
+
+ gui.refreshSelectedLine(&gui.State.Panels.Branches.SelectedLine, len(gui.State.Branches))
+ if err := gui.renderListPanel(branchesView, gui.State.Branches); err != nil {
+ return err
+ }
+ if err := gui.handleBranchSelect(gui.g, branchesView); err != nil {
+ return err
+ }
+
+ return nil
+}
+
// specific functions
func (gui *Gui) handleBranchPress(g *gocui.Gui, v *gocui.View) error {
@@ -350,26 +367,11 @@ func (gui *Gui) switchBranchesPanelContext(context string) error {
switch context {
case "local-branches":
- if err := gui.renderListPanel(branchesView, gui.State.Branches); err != nil {
- return err
- }
- if err := gui.handleBranchSelect(gui.g, gui.getBranchesView()); err != nil {
- return err
- }
+ return gui.renderLocalBranchesWithSelection()
case "remotes":
- if err := gui.renderListPanel(branchesView, gui.State.Remotes); err != nil {
- return err
- }
- if err := gui.handleRemoteSelect(gui.g, gui.getBranchesView()); err != nil {
- return err
- }
+ return gui.renderRemotesWithSelection()
case "remote-branches":
- if err := gui.renderListPanel(branchesView, gui.State.RemoteBranches); err != nil {
- return err
- }
- if err := gui.handleRemoteBranchSelect(gui.g, gui.getBranchesView()); err != nil {
- return err
- }
+ return gui.renderRemoteBranchesWithSelection()
}
return nil