summaryrefslogtreecommitdiffstats
path: root/pkg/gui
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2019-02-16 15:17:44 +1100
committerJesse Duffield <jessedduffield@gmail.com>2019-02-16 15:17:44 +1100
commitad93b4c863dfaa6a1cb6bb740d0dba87fef14404 (patch)
tree125d6bf54cdbf582d689cfe62e630866d7fc2a8e /pkg/gui
parent198cbee498e9201b1f12514f909eb3da98db5ec7 (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.go3
-rw-r--r--pkg/gui/files_panel.go3
-rw-r--r--pkg/gui/gui.go3
-rw-r--r--pkg/gui/keybindings.go2
-rw-r--r--pkg/gui/menu_panel.go3
-rw-r--r--pkg/gui/rebase_options_panel.go2
-rw-r--r--pkg/gui/recent_repos_panel.go2
-rw-r--r--pkg/gui/stash_panel.go3
-rw-r--r--pkg/gui/view_helpers.go3
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())
}