From 192909328c70492dd8076e04b8d482f61ba040b9 Mon Sep 17 00:00:00 2001 From: "5684185+vsariola@users.noreply.github.com" <5684185+vsariola@users.noreply.github.com> Date: Wed, 25 Jun 2025 19:13:52 +0300 Subject: [PATCH] fix(tracker/gioui): try to ensure that tooltip are never left behind Closes #141 --- tracker/gioui/tooltip.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tracker/gioui/tooltip.go b/tracker/gioui/tooltip.go index 721a40f..156c2d6 100644 --- a/tracker/gioui/tooltip.go +++ b/tracker/gioui/tooltip.go @@ -83,6 +83,9 @@ func (t *TipArea) Layout(gtx C, tip component.Tooltip, w layout.Widget) D { if !ok { continue } + // regardless of the event, we reset the exit timer to avoid tooltips + // staying visible indefinitely + t.Exit.SetTarget(gtx.Now.Add(t.ExitDuration)) switch e.Kind { case pointer.Enter: t.Hover.SetTarget(gtx.Now.Add(t.HoverDelay)) @@ -90,7 +93,6 @@ func (t *TipArea) Layout(gtx C, tip component.Tooltip, w layout.Widget) D { case pointer.Leave: t.VisibilityAnimation.Disappear(gtx.Now) t.Hover.ClearTarget() - t.Exit.ClearTarget() case pointer.Press: t.Press.SetTarget(gtx.Now.Add(t.LongPressDelay)) case pointer.Release: @@ -98,7 +100,6 @@ func (t *TipArea) Layout(gtx C, tip component.Tooltip, w layout.Widget) D { case pointer.Cancel: t.Hover.ClearTarget() t.Press.ClearTarget() - t.Exit.ClearTarget() } } if t.Hover.Process(gtx) {