There's a big FIXME in ProcessOtherEvent in Xi/exevents.c in the server
which is where one part of it goes. The other FIXME is I think in
DeliverEventsToWindow (or somewhere else in dix/events.c).
Event delivery model has changed _a lot_ since 1.5, but there's no
exhaustive documentation yet. The basics are in dix/getevents.c, where
GetPointerEvents() and friends create the internal events, then these are
added to the event queue. mieqProcessInputEvents() in mi/mieq.c takes them
out again and sends the event once through the slave device, once through
the master device (if applicable). That's where it hits (after XKB)
ProcessOtherEvent() and from then on into the event delivery paths.
There's a big FIXME in ProcessOtherEvent in Xi/exevents.c in the server Window (or somewhere else in dix/events.c).
which is where one part of it goes. The other FIXME is I think in
DeliverEventsTo
Event delivery model has changed _a lot_ since 1.5, but there's no tEvents( ) in mi/mieq.c takes them
exhaustive documentation yet. The basics are in dix/getevents.c, where
GetPointerEvents() and friends create the internal events, then these are
added to the event queue. mieqProcessInpu
out again and sends the event once through the slave device, once through
the master device (if applicable). That's where it hits (after XKB)
ProcessOtherEvent() and from then on into the event delivery paths.