MCPcopy Create free account
hub / github.com/gioui/gio / deliverEvent

Method deliverEvent

io/input/pointer.go:798–823  ·  view source on GitHub ↗
(handlers map[event.Tag]*handler, p pointerInfo, evts []taggedEvent, e pointer.Event)

Source from the content-addressed store, hash-verified

796}
797
798func (q *pointerQueue) deliverEvent(handlers map[event.Tag]*handler, p pointerInfo, evts []taggedEvent, e pointer.Event) []taggedEvent {
799 if p.pressed && len(p.handlers) == 1 {
800 e.Priority = pointer.Grabbed
801 }
802 scroll := e.Scroll
803 for _, k := range p.handlers {
804 h, ok := handlers[k]
805 if !ok {
806 continue
807 }
808 f := h.filter.pointer
809 if !f.Matches(e) {
810 continue
811 }
812 if e.Kind == pointer.Scroll {
813 if scroll == (f32.Point{}) {
814 return evts
815 }
816 scroll, e.Scroll = f.clampScroll(scroll)
817 }
818 e := e
819 e.Position = q.invTransform(h.pointer.areaPlusOne-1, e.Position)
820 evts = append(evts, taggedEvent{event: e, tag: k})
821 }
822 return evts
823}
824
825func (q *pointerQueue) deliverEnterLeaveEvents(handlers map[event.Tag]*handler, cursor pointer.Cursor, p pointerInfo, evts []taggedEvent, e pointer.Event) (pointerInfo, []taggedEvent, pointer.Cursor, bool) {
826 changed := false

Callers 2

PushMethod · 0.95
deliverScrollEventMethod · 0.95

Calls 3

invTransformMethod · 0.95
clampScrollMethod · 0.80
MatchesMethod · 0.45

Tested by

no test coverage detected