summaryrefslogtreecommitdiffstats
path: root/vendor
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2021-04-05 14:12:39 +1000
committerJesse Duffield <jessedduffield@gmail.com>2021-04-06 19:34:32 +1000
commit4c73d070acba00f4b4ddd5b76b405f7e3a6f98fe (patch)
tree9dd541b1eddd7e93ae64a23b29eee16cc826ebb9 /vendor
parent121b9d07151f67466fb3fd4275c353506f3fdd6b (diff)
ignore clicks on invisible views
Diffstat (limited to 'vendor')
-rw-r--r--vendor/github.com/jesseduffield/gocui/gui.go11
1 files changed, 8 insertions, 3 deletions
diff --git a/vendor/github.com/jesseduffield/gocui/gui.go b/vendor/github.com/jesseduffield/gocui/gui.go
index deeb4371a..f16111165 100644
--- a/vendor/github.com/jesseduffield/gocui/gui.go
+++ b/vendor/github.com/jesseduffield/gocui/gui.go
@@ -347,15 +347,20 @@ func (g *Gui) View(name string) (*View, error) {
return nil, errors.Wrap(ErrUnknownView, 0)
}
-// ViewByPosition returns a pointer to a view matching the given position, or
+// VisibleViewByPosition returns a pointer to a view matching the given position, or
// error ErrUnknownView if a view in that position does not exist.
-func (g *Gui) ViewByPosition(x, y int) (*View, error) {
+func (g *Gui) VisibleViewByPosition(x, y int) (*View, error) {
g.Mutexes.ViewsMutex.Lock()
defer g.Mutexes.ViewsMutex.Unlock()
// traverse views in reverse order checking top views first
for i := len(g.views); i > 0; i-- {
v := g.views[i-1]
+
+ if !v.Visible {
+ continue
+ }
+
frameOffset := 0
if v.Frame {
frameOffset = 1
@@ -1042,7 +1047,7 @@ func (g *Gui) onKey(ev *GocuiEvent) error {
case eventMouse:
mx, my := ev.MouseX, ev.MouseY
- v, err := g.ViewByPosition(mx, my)
+ v, err := g.VisibleViewByPosition(mx, my)
if err != nil {
break
}