2.4 Managing the Output Buffer
Most CLX functions cause output requests to be generated to an X server.
Output requests are not transmitted immediately but instead are stored
in an output buffer for the appropriate display. Requests in the
output buffer are typically sent only when the buffer is filled.
Alternatively, buffered requests can be sent prior to processing an
event in the input event queue (see
paragrpah
12.3, Processing Events). In either case,
CLX sends the output buffer automatically without explicit instructions
from the client application.
However, in some cases, explicit control over the output buffer is
needed, typically to ensure that the X server is in a consistent state
before proceeding further. The
display-force-output
and
display-finish-output
functions allow a client program to synchronize with buffered output
requests.
display-after-function |
display |
Function |
|
-
display
-
A
display object.
Returns and (with setf) sets the after-function
for the given display. If after-function is
non-nil, it is a function that is called after every
protocol request is generated, even those inside an explicit
with-display,
but never called from inside the after-function. The
function is called inside the effective
with-display
for the associated request. The default value is nil.
This can be set, for example, to
#'display-force-output
or #' display-finish-output.
-
after-function
-
Type function or null.
|
display-force-output |
display |
Function |
|
-
display
-
A
display object.
Forces any buffered output to be sent to the X server.
|
display-finish-output |
display |
Function |
|
-
display
-
A
display object.
Forces any buffered output to be sent to the X server and then
waits until all requests have been received and processed. Any
errors generated are read and handled by the display error
handler. Any events generated by output requests are read and
stored in the event queue.
|