diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2019-02-16 15:17:44 +1100 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2019-02-16 15:17:44 +1100 |
commit | ad93b4c863dfaa6a1cb6bb740d0dba87fef14404 (patch) | |
tree | 125d6bf54cdbf582d689cfe62e630866d7fc2a8e /pkg/gui | |
parent | 198cbee498e9201b1f12514f909eb3da98db5ec7 (diff) |
consider whether the view has focus when rendering the contents of a view
Diffstat (limited to 'pkg/gui')
-rw-r--r-- | pkg/gui/commits_panel.go | 3 | ||||
-rw-r--r-- | pkg/gui/files_panel.go | 3 | ||||
-rw-r--r-- | pkg/gui/gui.go | 3 | ||||
-rw-r--r-- | pkg/gui/keybindings.go | 2 | ||||
-rw-r--r-- | pkg/gui/menu_panel.go | 3 | ||||
-rw-r--r-- | pkg/gui/rebase_options_panel.go | 2 | ||||
-rw-r--r-- | pkg/gui/recent_repos_panel.go | 2 | ||||
-rw-r--r-- | pkg/gui/stash_panel.go | 3 | ||||
-rw-r--r-- | pkg/gui/view_helpers.go | 3 |
9 files changed, 16 insertions, 8 deletions
diff --git a/pkg/gui/commits_panel.go b/pkg/gui/commits_panel.go index 0c557b15d..e791cf87b 100644 --- a/pkg/gui/commits_panel.go +++ b/pkg/gui/commits_panel.go @@ -47,7 +47,8 @@ func (gui *Gui) refreshCommits(g *gocui.Gui) error { gui.refreshSelectedLine(&gui.State.Panels.Commits.SelectedLine, len(gui.State.Commits)) - list, err := utils.RenderList(gui.State.Commits) + isFocused := gui.g.CurrentView().Name() == "commits" + list, err := utils.RenderList(gui.State.Commits, isFocused) if err != nil { return err } diff --git a/pkg/gui/files_panel.go b/pkg/gui/files_panel.go index 57217249a..491b931e5 100644 --- a/pkg/gui/files_panel.go +++ b/pkg/gui/files_panel.go @@ -67,7 +67,8 @@ func (gui *Gui) refreshFiles() error { gui.g.Update(func(g *gocui.Gui) error { filesView.Clear() - list, err := utils.RenderList(gui.State.Files) + isFocused := gui.g.CurrentView().Name() == "files" + list, err := utils.RenderList(gui.State.Files, isFocused) if err != nil { return err } diff --git a/pkg/gui/gui.go b/pkg/gui/gui.go index 04653200d..637db680a 100644 --- a/pkg/gui/gui.go +++ b/pkg/gui/gui.go @@ -233,6 +233,9 @@ func (gui *Gui) onFocusLost(v *gocui.View) error { if v == nil { return nil } + if v.Name() == "branches" { + gui.renderListPanel(gui.getBranchesView(), gui.State.Branches) + } gui.Log.Info(v.Name() + " focus lost") return nil } diff --git a/pkg/gui/keybindings.go b/pkg/gui/keybindings.go index 5fe53ec8a..2b5672595 100644 --- a/pkg/gui/keybindings.go +++ b/pkg/gui/keybindings.go @@ -16,7 +16,7 @@ type Binding struct { } // GetDisplayStrings returns the display string of a file -func (b *Binding) GetDisplayStrings() []string { +func (b *Binding) GetDisplayStrings(isFocused bool) []string { return []string{b.GetKey(), b.Description} } diff --git a/pkg/gui/menu_panel.go b/pkg/gui/menu_panel.go index 847069446..6995a9fec 100644 --- a/pkg/gui/menu_panel.go +++ b/pkg/gui/menu_panel.go @@ -50,7 +50,8 @@ func (gui *Gui) handleMenuClose(g *gocui.Gui, v *gocui.View) error { } func (gui *Gui) createMenu(title string, items interface{}, handlePress func(int) error) error { - list, err := utils.RenderList(items) + isFocused := gui.g.CurrentView().Name() == "menu" + list, err := utils.RenderList(items, isFocused) if err != nil { return err } diff --git a/pkg/gui/rebase_options_panel.go b/pkg/gui/rebase_options_panel.go index f60542c90..7ecfc629d 100644 --- a/pkg/gui/rebase_options_panel.go +++ b/pkg/gui/rebase_options_panel.go @@ -12,7 +12,7 @@ type option struct { } // GetDisplayStrings is a function. -func (r *option) GetDisplayStrings() []string { +func (r *option) GetDisplayStrings(isFocused bool) []string { return []string{r.value} } diff --git a/pkg/gui/recent_repos_panel.go b/pkg/gui/recent_repos_panel.go index e14a917eb..6108b737c 100644 --- a/pkg/gui/recent_repos_panel.go +++ b/pkg/gui/recent_repos_panel.go @@ -15,7 +15,7 @@ type recentRepo struct { } // GetDisplayStrings returns the path from a recent repo. -func (r *recentRepo) GetDisplayStrings() []string { +func (r *recentRepo) GetDisplayStrings(isFocused bool) []string { yellow := color.New(color.FgMagenta) base := filepath.Base(r.path) path := yellow.Sprint(r.path) diff --git a/pkg/gui/stash_panel.go b/pkg/gui/stash_panel.go index 4ee19793c..ed2f71401 100644 --- a/pkg/gui/stash_panel.go +++ b/pkg/gui/stash_panel.go @@ -41,7 +41,8 @@ func (gui *Gui) refreshStashEntries(g *gocui.Gui) error { gui.refreshSelectedLine(&gui.State.Panels.Stash.SelectedLine, len(gui.State.StashEntries)) - list, err := utils.RenderList(gui.State.StashEntries) + isFocused := gui.g.CurrentView().Name() == "stash" + list, err := utils.RenderList(gui.State.StashEntries, isFocused) if err != nil { return err } diff --git a/pkg/gui/view_helpers.go b/pkg/gui/view_helpers.go index b7b23f16a..45c470978 100644 --- a/pkg/gui/view_helpers.go +++ b/pkg/gui/view_helpers.go @@ -364,7 +364,8 @@ func (gui *Gui) refreshSelectedLine(line *int, total int) { func (gui *Gui) renderListPanel(v *gocui.View, items interface{}) error { gui.g.Update(func(g *gocui.Gui) error { - list, err := utils.RenderList(items) + isFocused := gui.g.CurrentView().Name() == v.Name() + list, err := utils.RenderList(items, isFocused) if err != nil { return gui.createErrorPanel(gui.g, err.Error()) } |