The event reported to a client application during event processing depends on which event masks you provide as the event-mask attribute for a window. For example, if you pass the event mask ButtonPressMask , the X server sends back only ButtonPress events.
Most events contain a time member, which is the time at which an event occurred.
In other cases, one event mask constant can map to several event type constants. For example, if you pass the event mask SubstructureNotifyMask , the X server can send back CirculateNotify , ConfigureNotify , CreateNotify , DestroyNotify , GravityNotify , MapNotify , ReparentNotify , or UnmapNotify events. In another case, two event masks can map to one event type. For example, if you pass either PointerMotionMask or ButtonMotionMask , the X server sends back a MotionNotify event. The following table lists the event mask, its associated event type or types, and the structure name associated with the event type.