io/router: avoid event copy for filtered events in pointerQueue

Signed-off-by: pierre <pierre.curto@gmail.com>
This commit is contained in:
pierre
2021-02-24 10:57:57 +01:00
committed by Elias Naur
parent 14595dde9f
commit 60d48014d4
+3 -3
View File
@@ -333,19 +333,19 @@ func (q *pointerQueue) deliverEvent(p *pointerInfo, events *handlerEvents, e poi
foremost := true foremost := true
for _, k := range p.handlers { for _, k := range p.handlers {
h := q.handlers[k] h := q.handlers[k]
if e.Type&h.types == 0 {
continue
}
e := e e := e
if p.pressed && len(p.handlers) == 1 { if p.pressed && len(p.handlers) == 1 {
e.Priority = pointer.Grabbed e.Priority = pointer.Grabbed
} else if foremost { } else if foremost {
e.Priority = pointer.Foremost e.Priority = pointer.Foremost
} }
if e.Type&h.types != 0 {
e.Position = q.invTransform(h.area, e.Position) e.Position = q.invTransform(h.area, e.Position)
foremost = false foremost = false
events.Add(k, e) events.Add(k, e)
} }
}
} }
func (q *pointerQueue) deliverEnterLeaveEvents(p *pointerInfo, events *handlerEvents, e pointer.Event) { func (q *pointerQueue) deliverEnterLeaveEvents(p *pointerInfo, events *handlerEvents, e pointer.Event) {