Next: , Up: Using SERVE-EVENT with the CLX Interface to X   [Contents][Index]

7.4.1 Without Object Sets

Since most applications that use CLX, can avoid the complexity of object sets, these routines are described in a separate section. The routines described in the next section that use the object set mechanism are based on these interfaces.

Function: ext:enable-clx-event-handling display handler

This function causes system:serve-event to notice when there is input on display’s connection to the X11 server. When this happens, system:serve-event invokes handler on display in a dynamic context with an error handler bound that flushes all events from display and returns. By returning, the error handler declines to handle the error, but it will have cleared all events; thus, entering the debugger will not result in infinite errors due to streams that wait via system:serve-event for input. Calling this repeatedly on the same display establishes handler as a new handler, replacing any previous one for display.

Function: ext:disable-clx-event-handling display

This function undoes the effect of ext:enable-clx-event-handling.

Macro: ext:with-clx-event-handling (display handler) {form}*

This macro evaluates each form in a context where system:serve-event invokes handler on display whenever there is input on display’s connection to the X server. This destroys any previously established handler for display.