From 072e4ee208a7c34307056fafb93f47419f8f8e91 Mon Sep 17 00:00:00 2001 From: "5684185+vsariola@users.noreply.github.com" <5684185+vsariola@users.noreply.github.com> Date: Wed, 9 Jul 2025 01:37:18 +0300 Subject: [PATCH] fix(tracker/gioui): knobs/switches capture scrollwheel only active --- tracker/gioui/param.go | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/tracker/gioui/param.go b/tracker/gioui/param.go index 7782ede..0498ca9 100644 --- a/tracker/gioui/param.go +++ b/tracker/gioui/param.go @@ -262,8 +262,13 @@ func (k *KnobWidget) Layout(gtx C) D { layout.Stacked(knob), layout.Stacked(label.Layout)) } + if !k.Scroll { + defer pointer.PassOp{}.Push(gtx.Ops).Pop() + } defer clip.Rect(image.Rectangle{Max: gtx.Constraints.Max}).Push(gtx.Ops).Pop() - event.Op(gtx.Ops, k.State) + if k.Scroll { + event.Op(gtx.Ops, k.State) + } k.State.drag.Add(gtx.Ops) if k.Hint != "" { c := gtx.Constraints @@ -362,9 +367,11 @@ func (s *SwitchWidget) Layout(gtx C) D { s.State.tipArea.Appear(gtx.Now) } } - defer clip.Rect(image.Rectangle{Max: gtx.Constraints.Max}).Push(gtx.Ops).Pop() - event.Op(gtx.Ops, s.State) - s.State.drag.Add(gtx.Ops) + if s.Scroll { + defer pointer.PassOp{}.Push(gtx.Ops).Pop() + defer clip.Rect(image.Rectangle{Max: gtx.Constraints.Max}).Push(gtx.Ops).Pop() + event.Op(gtx.Ops, s.State) + } return layout.Center.Layout(gtx, s.layoutSwitch) }