If the property member is None, the conversion has been refused This can mean that there is no owner for the selection, that the owner does not support the conversion implied by target, or that the server did not have sufficient space to accommodate the data

If the property member is not None, then that property will exist on the requestor window The value of the selection can be retrieved from this property using XGet-WindowProperty( ) When using XGetWindowProperty( ) to retrieve the value of a selection, the property argument should be set to the property member in the SelectionNotify event The type member should be set to AnyPropertyType, because the requestor has no way of knowing beforehand what type the selection owner will use

The property in the SelectionNotify should be deleted by invoking XGetWindow-Property () with the delete argument set to True As discussed above, the owner has no way of knowing when the data has been transferred to the requestor unless the property is removed

12.4.7 Large Data Transfers

Selections can get large, and this poses two problems

• Transferring large amounts of data to the server is expensive, and it would be beneficial to be able to reuse the data once it has been sent to answer further XConvert-Selection( ) requests

• All servers will have limits on the amount of data that can be stored in a single property Exceeding this limit will result m a BadAlloc error on the XChangeProperty( ) call that the selection owner uses to store the data

The proposed conventions for dealing with these problems are given in Appendix L, Inter client Communication Conventions, of Volume Zero, X Protocol Reference Manual (as of the second printing)

12.4.8 More on Selection Properties and Types

A given selection has a type associated with it Built-in property types that might apply to selections are xa_bitmap, xa_cardinal, xa_integer, xa_pixmap, xa_point, xa_rectangle, and xa_string other types that clients could define might be xa_file_name or xa_picture (a sequence of graphics primitives to reproduce a picture— the Macintosh uses this type of selection to cut and paste graphics into text applications and vice versa)

It is important to observe that defining a new atom consumes resources in the server, and they are not released until the server reinitializes Thus, it must be a goal to reduce the need for newly minted atoms

The selection named by xa_primary is used for all commands which take only a single argument It is the principal means of communication between clients which use the selection mechanism

434 Xlib Programming Manual