Types of selection in the X Window System

On December 14, 2011, in General, by dipin
Post to Google Buzz
Bookmark this on Yahoo Bookmark
Bookmark this on Digg
Share on reddit
Share on StumbleUpon


The X Window System ( X Window System , also known as X11 because currently using version 11 of the system) provides 3 mechanisms that allow users to transfer data from one window to another:   Selectionscut buffers, and drag-and-drop .

Since the two windows may be handled by two different applications, these mechanisms require two different clients connected with the same X server to exchange data. The X Window core protocol includes some requests and events that are specific to selection exchange, but the transfer is mainly done using event sending and window properties, which are not specific to selection transfer.

Different types of data can be transferred: it is usually text, but can also be an image, a number, a list of objects, etc. In the following, only the case of text is considered.

Active and passive selections

The methods for transferring data can be classified into active and passive, depending on whether the client handling the selected data has to actively participate in the transfer to a client requesting it:

Passive
when some data is selected, the client handling the window where this selection is done transfers it somewhere, and needs not to care about it any longer;
Active
transfer of data to a client requires the client “holding” the selection to actively participate in the exchange;

Selections and drag-and-drop are active mechanisms: after some text is selected in a window, the client handling the window must actively support a protocol for transferring the data to the application requesting it. By contrast, cut buffers are a passive mechanism: after some text is selected, its is transferred to a cut buffer and remains there even if the application handling the window terminates and the window is destroyed. The X clipboard is a passive mechanism as perceived by the client holding the selection, but require the xclipboard client to actively support any subsequent data transfer.

An advantage of active mechanisms is that the data can be converted to a different format before the transfer. In particular, the client receiving the data can request the selection data to be converted into a suitable form. If the sending client refuses to do so, the receiver can request a different format. For example, a piece of text rendering HTML code can be transferred as text to a requester that can only handle text, but can also be transferred as HTML code if the requester can handle it. Such negotiation of format cannot be done by passive mechanisms, in which the client holding the selection (and giving it a semantics) transfers the selection is not involved in the further transfer into a client requesting it.

Another advantage of the active mechanisms is that large pieces of data can be transferred in a sequence of transfers rather than a single one. Passive mechanisms instead require all data to be transferred somewhere from the selection owner, then transferred again to the client requesting it.

The advantage of the passive mechanisms is that the transfer can be done even after the client holding the data terminates. This is not possible in the active mechanisms, which require the client holding the data to actively participate in the transfer.

 

<a href=”http://en.wikipedia.org/wiki/X_Window_selection“>Read More</a>

Tagged with:  

Leave a Reply

*

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Visit our friends!

A few highly recommended friends...