XAllowEvents man page
XAllowEvents — release queued events
int XAllowEvents(Display *display, int event_mode, Time time);
Specifies the connection to the X server.
Specifies the event mode. You can pass AsyncPointer, SyncPointer, AsyncKeyboard, SyncKeyboard, ReplayPointer, ReplayKeyboard, AsyncBoth, or SyncBoth.
Specifies the time. You can pass either a timestamp or CurrentTime.
The XAllowEvents function releases some queued events if the client has caused a device to freeze. It has no effect if the specified time is earlier than the last-grab time of the most recent active grab for the client or if the specified time is later than the current X server time.
XAllowEvents can generate a BadValue error.
Some numeric value falls outside the range of values accepted by the request. Unless a specific range is specified for an argument, the full range defined by the argument's type is accepted. Any argument defined as a set of alternatives can generate this error.
Xlib - C Language X Interface
XGrabButton(3), XGrabKey(3), XGrabKeyboard(3), XGrabPointer(3).