From 7025468f430b76eb7557f35bdae1f8f3ece27470 Mon Sep 17 00:00:00 2001 From: Jesse Duffield Date: Sat, 29 Jun 2019 10:40:24 +1000 Subject: [PATCH] allow clicking on frame edges --- Gopkg.lock | 4 ++-- pkg/gui/view_helpers.go | 4 ++++ vendor/github.com/jesseduffield/gocui/gui.go | 6 +++++- vendor/github.com/jesseduffield/gocui/view.go | 2 +- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/Gopkg.lock b/Gopkg.lock index 1aa0f2ac..a6cab8cf 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -131,11 +131,11 @@ [[projects]] branch = "master" - digest = "1:29be572efa73e123cace81233a9140c038c6fb70d4240502464796d6e4eff668" + digest = "1:44d8be68f77843be5c779fcaf4793693a40ec96b83b5080a18bfd80123a4b2b2" name = "github.com/jesseduffield/gocui" packages = ["."] pruneopts = "NUT" - revision = "e030e03faca4edb742120c0b739cb2114a4b3358" + revision = "d99ac1a5a23de099e34cb8723e51114bb2b44d23" [[projects]] branch = "master" diff --git a/pkg/gui/view_helpers.go b/pkg/gui/view_helpers.go index 98ffd266..5851a203 100644 --- a/pkg/gui/view_helpers.go +++ b/pkg/gui/view_helpers.go @@ -394,6 +394,10 @@ func (gui *Gui) handleClick(v *gocui.View, itemCount int, selectedLine *int, han newSelectedLine := cy - oy + if newSelectedLine < 0 { + newSelectedLine = 0 + } + if newSelectedLine > itemCount-1 { newSelectedLine = itemCount - 1 } diff --git a/vendor/github.com/jesseduffield/gocui/gui.go b/vendor/github.com/jesseduffield/gocui/gui.go index 6f7b35e8..f0864cf1 100644 --- a/vendor/github.com/jesseduffield/gocui/gui.go +++ b/vendor/github.com/jesseduffield/gocui/gui.go @@ -233,7 +233,11 @@ func (g *Gui) ViewByPosition(x, y int) (*View, error) { // traverse views in reverse order checking top views first for i := len(g.views); i > 0; i-- { v := g.views[i-1] - if x > v.x0 && x < v.x1 && y > v.y0 && y < v.y1 { + frameOffset := 0 + if v.Frame { + frameOffset = 1 + } + if x > v.x0-frameOffset && x < v.x1+frameOffset && y > v.y0-frameOffset && y < v.y1+frameOffset { return v, nil } } diff --git a/vendor/github.com/jesseduffield/gocui/view.go b/vendor/github.com/jesseduffield/gocui/view.go index 21742ab8..043231af 100644 --- a/vendor/github.com/jesseduffield/gocui/view.go +++ b/vendor/github.com/jesseduffield/gocui/view.go @@ -196,7 +196,7 @@ func (v *View) setRune(x, y int, ch rune, fgColor, bgColor Attribute) error { func (v *View) SetCursor(x, y int) error { maxX, maxY := v.Size() if x < 0 || x >= maxX || y < 0 || y >= maxY { - return errors.New("invalid point") + return nil } v.cx = x v.cy = y