mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-01 07:35:40 +00:00
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 <mail@eliasnaur.com>
This commit is contained in:
@@ -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 {
|
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 {
|
if p.pressed && len(p.handlers) == 1 {
|
||||||
e.Priority = pointer.Grabbed
|
e.Priority = pointer.Grabbed
|
||||||
foremost = false
|
|
||||||
}
|
}
|
||||||
scroll := e.Scroll
|
scroll := e.Scroll
|
||||||
for _, k := range p.handlers {
|
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)
|
scroll, e.Scroll = f.clampScroll(scroll)
|
||||||
}
|
}
|
||||||
e := e
|
e := e
|
||||||
if foremost {
|
|
||||||
foremost = false
|
|
||||||
e.Priority = pointer.Foremost
|
|
||||||
}
|
|
||||||
e.Position = q.invTransform(h.pointer.areaPlusOne-1, e.Position)
|
e.Position = q.invTransform(h.pointer.areaPlusOne-1, e.Position)
|
||||||
evts = append(evts, taggedEvent{event: e, tag: k})
|
evts = append(evts, taggedEvent{event: e, tag: k})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -400,9 +400,9 @@ func TestPointerPriority(t *testing.T) {
|
|||||||
assertEventPointerTypeSequence(t, hev1, pointer.Scroll, pointer.Scroll)
|
assertEventPointerTypeSequence(t, hev1, pointer.Scroll, pointer.Scroll)
|
||||||
assertEventPointerTypeSequence(t, hev2, pointer.Scroll)
|
assertEventPointerTypeSequence(t, hev2, pointer.Scroll)
|
||||||
assertEventPointerTypeSequence(t, hev3, pointer.Scroll)
|
assertEventPointerTypeSequence(t, hev3, pointer.Scroll)
|
||||||
assertEventPriorities(t, hev1, pointer.Shared, pointer.Foremost)
|
assertEventPriorities(t, hev1, pointer.Shared, pointer.Shared)
|
||||||
assertEventPriorities(t, hev2, pointer.Foremost)
|
assertEventPriorities(t, hev2, pointer.Shared)
|
||||||
assertEventPriorities(t, hev3, pointer.Foremost)
|
assertEventPriorities(t, hev3, pointer.Shared)
|
||||||
assertScrollEvent(t, hev1[0], f32.Pt(30, 0))
|
assertScrollEvent(t, hev1[0], f32.Pt(30, 0))
|
||||||
assertScrollEvent(t, hev2[0], f32.Pt(20, 0))
|
assertScrollEvent(t, hev2[0], f32.Pt(20, 0))
|
||||||
assertScrollEvent(t, hev1[1], f32.Pt(50, 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})
|
key.FocusEvent{}, pointer.Event{Kind: pointer.Press, Source: pointer.Mouse, Priority: pointer.Shared})
|
||||||
r.Source().Execute(key.FocusCmd{Tag: 1})
|
r.Source().Execute(key.FocusCmd{Tag: 1})
|
||||||
assertEventSequence(t, events(&r, -1, pointer.Filter{Target: 2, Kinds: pointer.Press}),
|
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.
|
// offer satisfies io.ReadCloser for use in data transfers.
|
||||||
|
|||||||
@@ -207,9 +207,6 @@ const (
|
|||||||
// Shared priority is for handlers that
|
// Shared priority is for handlers that
|
||||||
// are part of a matching set larger than 1.
|
// are part of a matching set larger than 1.
|
||||||
Shared Priority = iota
|
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 is used for matching sets of size 1.
|
||||||
Grabbed
|
Grabbed
|
||||||
)
|
)
|
||||||
@@ -295,8 +292,6 @@ func (p Priority) String() string {
|
|||||||
switch p {
|
switch p {
|
||||||
case Shared:
|
case Shared:
|
||||||
return "Shared"
|
return "Shared"
|
||||||
case Foremost:
|
|
||||||
return "Foremost"
|
|
||||||
case Grabbed:
|
case Grabbed:
|
||||||
return "Grabbed"
|
return "Grabbed"
|
||||||
default:
|
default:
|
||||||
|
|||||||
Reference in New Issue
Block a user