XPutBackEvent copies an XEvent internally, so the pointer passed in must