mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-06 09:55:40 +00:00
Revert "io/router: [API] don't emit Enter and Leave events for touch input"
This reverts commit cd0c9dab9f. It turns out
that Enter/Leave is important for cancelling press-then-release-outside
for clickables.
Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
+22
-24
@@ -770,32 +770,30 @@ func (q *pointerQueue) deliverEnterLeaveEvents(p *pointerInfo, events *handlerEv
|
|||||||
p.handlers = append(p.handlers[:0], hits...)
|
p.handlers = append(p.handlers[:0], hits...)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if e.Source == pointer.Mouse {
|
// Deliver Leave events.
|
||||||
// Deliver Leave events.
|
for _, k := range p.entered {
|
||||||
for _, k := range p.entered {
|
if _, found := searchTag(hits, k); found {
|
||||||
if _, found := searchTag(hits, k); found {
|
continue
|
||||||
continue
|
|
||||||
}
|
|
||||||
h := q.handlers[k]
|
|
||||||
e.Type = pointer.Leave
|
|
||||||
|
|
||||||
if e.Type&h.types != 0 {
|
|
||||||
e.Position = q.invTransform(h.area, e.Position)
|
|
||||||
events.Add(k, e)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// Deliver Enter events.
|
h := q.handlers[k]
|
||||||
for _, k := range hits {
|
e.Type = pointer.Leave
|
||||||
h := q.handlers[k]
|
|
||||||
if _, found := searchTag(p.entered, k); found {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
e.Type = pointer.Enter
|
|
||||||
|
|
||||||
if e.Type&h.types != 0 {
|
if e.Type&h.types != 0 {
|
||||||
e.Position = q.invTransform(h.area, e.Position)
|
e.Position = q.invTransform(h.area, e.Position)
|
||||||
events.Add(k, e)
|
events.Add(k, e)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
// Deliver Enter events.
|
||||||
|
for _, k := range hits {
|
||||||
|
h := q.handlers[k]
|
||||||
|
if _, found := searchTag(p.entered, k); found {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
e.Type = pointer.Enter
|
||||||
|
|
||||||
|
if e.Type&h.types != 0 {
|
||||||
|
e.Position = q.invTransform(h.area, e.Position)
|
||||||
|
events.Add(k, e)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
p.entered = append(p.entered[:0], hits...)
|
p.entered = append(p.entered[:0], hits...)
|
||||||
|
|||||||
Reference in New Issue
Block a user