12.5 Cut Buffers

Cut buffers are provided as a simple but limited method of communication between applications. Cut buffers are particularly good for editors, because they can act like a stack of buffers, recording the history of deletions.

The selection mechanism is superior for many applications, since it allows communication regarding the type of the data transferred. Selections are described in 12.4 Selections. It is also possible for an application to use both cut buffers and selections.

The cut buffers are eight properties on the root window of screen 0 of a server. The buffers are numbered 0 to 7. Cut buffers rely on a prior agreement between the two clients regarding the format of the data to be placed in the cut buffers. The data that can be placed in a single cut buffer is limited to the maximum size of a single property, which is server-dependent.

Because the cut buffers are properties, it is possible to be notified when they have been written into. PropertyNotify events can assist applications in timing their communication. These are selected with PropertyChangeMask.

The functions that are used to read and write to cut buffers are XFetchBuffer(), XFetchBytes(), XStoreBuffer(), and XStoreBytes(). The routines with Bytes in the name use cut buffer 0 only, while the others may use any of the eight. XRotateBuffers() moves the contents of the eight buffers any number of positions.

The cut buffer properties are named by the predefined atoms XA_CUT_BUFFER0 to XA_CUT_BUFFER7.

The ...

Get XLIB Programming Manual, Rel. 5, Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.