In the motion compression phase the coalesced events will be saved as a GdkTimeCoord on the motion event that shall be delivered.
For simplicity (and because history doesn't make much sense otherwise) event history is only recorded while there are buttons pressed, this also tidily ensures that those coalesced events would have the same target widget on the gtk side than the delivered one, because of implicit grabs.
ea216accd7 gdk: Implement motion history as motion event data
gdk/gdkevents.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++
gdk/gdkevents.h | 1 +
gdk/gdkeventsprivate.h | 1 +
3 files changed, 58 insertions(+)