git://people.freedesktop.org/~whot/xserver.git internal-events The current X server implementation uses the protocol wire format for input event processing. This goes from event generation in GetPointerEvents() and friends through to the actual event delivery.
Thus, the server is bound internally to a 32-byte wire format + the two GenericEvents we have atm, with random if/then/else/other sprinkled to deal with core, XI and GenericEvents. Adding new events for XI2 is painful, as we have to extrapolate new information from structs that don't have them. And sprinkle more if/else/misc across the code. This patch series introduces a new InternalEvent, visible only to the server. Event generation and most of the event processing now only uses this InternalEvent. Towards the end of event delivery, we switch back into core/XI events. Arguably, this could be pushed even further but requires a rework of the mess that constitutes event masks. I've been running versions of it during development, and put some effort in to make all commits run-able (for future bisecting). They're rebased onto today's master. Casualties: custom event handlers, DGA, event callbacks are broken for now. No reason they can't be fixed, I just didn't bother yet. Comments and testing much appreciated. I'm not sure how to continue from there. The options are - merge into master, keep working on master - keep rebasing as non-fast-forward on external branch on my people repo - push into a public branch and merge into master when complete. Cheers, Peter _______________________________________________ xorg mailing list xorg@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/xorg