From e18db649912ae86ecd1c7da10456c8a199fa81aa Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Thu, 24 Apr 2025 19:57:07 +0200 Subject: [PATCH] io/pointer: remove Foremost priority The only known use-case (nested scrolling) now works without special treatment of the foremost handler. Signed-off-by: Elias Naur --- io/input/pointer.go | 6 ------ io/input/pointer_test.go | 8 ++++---- io/pointer/pointer.go | 5 ----- 3 files changed, 4 insertions(+), 15 deletions(-) diff --git a/io/input/pointer.go b/io/input/pointer.go index 292e892d..329e7bc3 100644 --- a/io/input/pointer.go +++ b/io/input/pointer.go @@ -792,10 +792,8 @@ func (q *pointerQueue) Push(handlers map[event.Tag]*handler, state pointerState, } func (q *pointerQueue) deliverEvent(handlers map[event.Tag]*handler, p pointerInfo, evts []taggedEvent, e pointer.Event) []taggedEvent { - foremost := true if p.pressed && len(p.handlers) == 1 { e.Priority = pointer.Grabbed - foremost = false } scroll := e.Scroll for _, k := range p.handlers { @@ -814,10 +812,6 @@ func (q *pointerQueue) deliverEvent(handlers map[event.Tag]*handler, p pointerIn scroll, e.Scroll = f.clampScroll(scroll) } e := e - if foremost { - foremost = false - e.Priority = pointer.Foremost - } e.Position = q.invTransform(h.pointer.areaPlusOne-1, e.Position) evts = append(evts, taggedEvent{event: e, tag: k}) } diff --git a/io/input/pointer_test.go b/io/input/pointer_test.go index 335f8c5c..281623ca 100644 --- a/io/input/pointer_test.go +++ b/io/input/pointer_test.go @@ -400,9 +400,9 @@ func TestPointerPriority(t *testing.T) { assertEventPointerTypeSequence(t, hev1, pointer.Scroll, pointer.Scroll) assertEventPointerTypeSequence(t, hev2, pointer.Scroll) assertEventPointerTypeSequence(t, hev3, pointer.Scroll) - assertEventPriorities(t, hev1, pointer.Shared, pointer.Foremost) - assertEventPriorities(t, hev2, pointer.Foremost) - assertEventPriorities(t, hev3, pointer.Foremost) + assertEventPriorities(t, hev1, pointer.Shared, pointer.Shared) + assertEventPriorities(t, hev2, pointer.Shared) + assertEventPriorities(t, hev3, pointer.Shared) assertScrollEvent(t, hev1[0], f32.Pt(30, 0)) assertScrollEvent(t, hev2[0], f32.Pt(20, 0)) assertScrollEvent(t, hev1[1], f32.Pt(50, 0)) @@ -1143,7 +1143,7 @@ func TestPartialEvent(t *testing.T) { key.FocusEvent{}, pointer.Event{Kind: pointer.Press, Source: pointer.Mouse, Priority: pointer.Shared}) r.Source().Execute(key.FocusCmd{Tag: 1}) assertEventSequence(t, events(&r, -1, pointer.Filter{Target: 2, Kinds: pointer.Press}), - pointer.Event{Kind: pointer.Press, Source: pointer.Mouse, Priority: pointer.Foremost}) + pointer.Event{Kind: pointer.Press, Source: pointer.Mouse, Priority: pointer.Shared}) } // offer satisfies io.ReadCloser for use in data transfers. diff --git a/io/pointer/pointer.go b/io/pointer/pointer.go index 45625991..4cba66ec 100644 --- a/io/pointer/pointer.go +++ b/io/pointer/pointer.go @@ -207,9 +207,6 @@ const ( // Shared priority is for handlers that // are part of a matching set larger than 1. Shared Priority = iota - // Foremost priority is like Shared, but the - // handler is the foremost of the matching set. - Foremost // Grabbed is used for matching sets of size 1. Grabbed ) @@ -295,8 +292,6 @@ func (p Priority) String() string { switch p { case Shared: return "Shared" - case Foremost: - return "Foremost" case Grabbed: return "Grabbed" default: