>Quick work! BTW, how do I discard the event record returned >by XCBWaitEvent()/XCBPollEvent()? All the stuff in xcb.h >writes the event record into user-supplied memory. You just need to free() the event returned by XCBWaitEvent()/XCBPollEvent(). As an example, Hypnomoire does this in event_thread(). ---Andy Howe