fix(tracker/gioui): try to ensure that tooltip are never left behind

Closes #141
This commit is contained in:
5684185+vsariola@users.noreply.github.com
2025-06-25 19:13:52 +03:00
parent cb4c020061
commit 192909328c

View File

@ -83,6 +83,9 @@ func (t *TipArea) Layout(gtx C, tip component.Tooltip, w layout.Widget) D {
if !ok { if !ok {
continue 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 { switch e.Kind {
case pointer.Enter: case pointer.Enter:
t.Hover.SetTarget(gtx.Now.Add(t.HoverDelay)) 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: case pointer.Leave:
t.VisibilityAnimation.Disappear(gtx.Now) t.VisibilityAnimation.Disappear(gtx.Now)
t.Hover.ClearTarget() t.Hover.ClearTarget()
t.Exit.ClearTarget()
case pointer.Press: case pointer.Press:
t.Press.SetTarget(gtx.Now.Add(t.LongPressDelay)) t.Press.SetTarget(gtx.Now.Add(t.LongPressDelay))
case pointer.Release: case pointer.Release:
@ -98,7 +100,6 @@ func (t *TipArea) Layout(gtx C, tip component.Tooltip, w layout.Widget) D {
case pointer.Cancel: case pointer.Cancel:
t.Hover.ClearTarget() t.Hover.ClearTarget()
t.Press.ClearTarget() t.Press.ClearTarget()
t.Exit.ClearTarget()
} }
} }
if t.Hover.Process(gtx) { if t.Hover.Process(gtx) {