diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2019-11-10 16:20:35 +1100 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2019-11-10 22:32:13 +1100 |
commit | e85310c0a92a89167530241bdc3fc5f66a48706d (patch) | |
tree | f7989a8b002d2d5aa847460cae112aac9f64b669 /pkg/gui/view_helpers.go | |
parent | cd17b46b55e312b3ba4e3ab9d3d96a8eeb20fded (diff) |
add mouse support
Diffstat (limited to 'pkg/gui/view_helpers.go')
-rw-r--r-- | pkg/gui/view_helpers.go | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/pkg/gui/view_helpers.go b/pkg/gui/view_helpers.go index 525100c77..29180418c 100644 --- a/pkg/gui/view_helpers.go +++ b/pkg/gui/view_helpers.go @@ -425,3 +425,27 @@ func (gui *Gui) isPopupPanel(viewName string) bool { func (gui *Gui) popupPanelFocused() bool { return gui.isPopupPanel(gui.currentViewName()) } + +func (gui *Gui) handleClick(v *gocui.View, itemCount int, selectedLine *int, handleSelect func(*gocui.Gui, *gocui.View) error) error { + if gui.popupPanelFocused() && v != nil && !gui.isPopupPanel(v.Name()) { + return nil + } + + if _, err := gui.g.SetCurrentView(v.Name()); err != nil { + return err + } + + newSelectedLine := v.SelectedLineIdx() + + if newSelectedLine < 0 { + newSelectedLine = 0 + } + + if newSelectedLine > itemCount-1 { + newSelectedLine = itemCount - 1 + } + + *selectedLine = newSelectedLine + + return handleSelect(gui.g, v) +} |