From 266011fcd74f64ed50ed8e157ede5836e1c4ae52 Mon Sep 17 00:00:00 2001 From: Pieter van Loon Date: Mon, 27 Dec 2021 10:43:08 +0100 Subject: [PATCH] Add highlighting of hovered views only --- _examples/mouse.go | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/_examples/mouse.go b/_examples/mouse.go index a21bf81..59774eb 100644 --- a/_examples/mouse.go +++ b/_examples/mouse.go @@ -44,7 +44,6 @@ func layout(g *gocui.Gui) error { if !errors.Is(err, gocui.ErrUnknownView) { return err } - v.Highlight = true v.SelBgColor = gocui.ColorGreen v.SelFgColor = gocui.ColorBlack fmt.Fprintln(v, "Button 1 - line 1") @@ -59,11 +58,11 @@ func layout(g *gocui.Gui) error { if !errors.Is(err, gocui.ErrUnknownView) { return err } - v.Highlight = true v.SelBgColor = gocui.ColorGreen v.SelFgColor = gocui.ColorBlack fmt.Fprintln(v, "Button 2 - line 1") } + updateHighlightedView(g) return nil } @@ -105,11 +104,23 @@ func showMsg(g *gocui.Gui, v *gocui.View) error { maxX, maxY := g.Size() if v, err := g.SetView("msg", maxX/2-10, maxY/2, maxX/2+10, maxY/2+2, 0); err == nil || errors.Is(err, gocui.ErrUnknownView) { v.Clear() + v.SelBgColor = gocui.ColorCyan + v.SelFgColor = gocui.ColorBlack fmt.Fprintln(v, l) } return nil } +func updateHighlightedView(g *gocui.Gui) { + mx, my := g.MousePosition() + for _, view := range g.Views() { + view.Highlight = false + } + if v, err := g.ViewByPosition(mx, my); err == nil { + v.Highlight = true + } +} + func moveMsg(g *gocui.Gui) { mx, my := g.MousePosition() if !movingMsg && (mx != initialMouseX || my != initialMouseY) {