summaryrefslogtreecommitdiffstats
path: root/pkg/gui/view_helpers.go
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2019-11-10 16:20:35 +1100
committerJesse Duffield <jessedduffield@gmail.com>2019-11-10 22:32:13 +1100
commite85310c0a92a89167530241bdc3fc5f66a48706d (patch)
treef7989a8b002d2d5aa847460cae112aac9f64b669 /pkg/gui/view_helpers.go
parentcd17b46b55e312b3ba4e3ab9d3d96a8eeb20fded (diff)
add mouse support
Diffstat (limited to 'pkg/gui/view_helpers.go')
-rw-r--r--pkg/gui/view_helpers.go24
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)
+}