From 79bfd3adbd3200e6964c4f4ad5912c7aad092919 Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Mon, 28 Feb 2022 18:17:06 +0100 Subject: [PATCH] widget: reset focused states when disabled Signed-off-by: Elias Naur --- widget/button.go | 2 ++ widget/enum.go | 2 ++ 2 files changed, 4 insertions(+) diff --git a/widget/button.go b/widget/button.go index a6aad42c..ac4ff9db 100644 --- a/widget/button.go +++ b/widget/button.go @@ -112,6 +112,8 @@ func (b *Clickable) Layout(gtx layout.Context, w layout.Widget) layout.Dimension b.click.Add(gtx.Ops) if !disabled { key.InputOp{Tag: &b.keyTag}.Add(gtx.Ops) + } else { + b.focused = false } c.Add(gtx.Ops) for len(b.history) > 0 { diff --git a/widget/enum.go b/widget/enum.go index fb27c300..e1e09cc9 100644 --- a/widget/enum.go +++ b/widget/enum.go @@ -121,6 +121,8 @@ func (e *Enum) Layout(gtx layout.Context, k string, content layout.Widget) layou disabled := gtx.Queue == nil if !disabled { key.InputOp{Tag: &state.tag}.Add(gtx.Ops) + } else if e.focus == k { + e.focused = false } semantic.SelectedOp(k == e.Value).Add(gtx.Ops) semantic.DisabledOp(disabled).Add(gtx.Ops)