XSetSelectionOwner, XGetSelectionOwner, XConvertSelection - manipulate window selection


int XSetSelectionOwner(Display *display, Atom selection, Window owner, Time time); Window XGetSelectionOwner(Display *display, Atom selection); int XConvertSelection(Display *display, Atom selection, Atom target, Atom property, Window requestor, Time time);


display 1i Specifies the connection to the X server.

owner 1i Specifies the owner of the specified selection atom. You can pass a window or .ZN None .

property 1i Specifies the property name. You also can pass .ZN None .

requestor 1i Specifies the requestor.

selection 1i Specifies the selection atom.

target 1i Specifies the target atom.

time 1i Specifies the time. You can pass either a timestamp or .ZN CurrentTime .


The .ZN XSetSelectionOwner function changes the owner and last-change time for the specified selection and has no effect if the specified time is earlier than the current last-change time of the specified selection or is later than the current X server time. Otherwise, the last-change time is set to the specified time, with .ZN CurrentTime replaced by the current server time. If the owner window is specified as .ZN None , then the owner of the selection becomes .ZN None (that is, no owner). Otherwise, the owner of the selection becomes the client executing the request.

If the new owner (whether a client or .ZN None ) is not the same as the current owner of the selection and the current owner is not .ZN None , the current owner is sent a .ZN SelectionClear event. If the client that is the owner of a selection is later terminated (that is, its connection is closed) or if the owner window it has specified in the request is later destroyed, the owner of the selection automatically reverts to .ZN None , but the last-change time is not affected. The selection atom is uninterpreted by the X server. .ZN XGetSelectionOwner returns the owner window, which is reported in .ZN SelectionRequest and .ZN SelectionClear events. Selections are global to the X server.

.ZN XSetSelectionOwner can generate .ZN BadAtom and .ZN BadWindow errors.

The .ZN XGetSelectionOwner function returns the window ID associated with the window that currently owns the specified selection. If no selection was specified, the function returns the constant .ZN None . If .ZN None is returned, there is no owner for the selection.

.ZN XGetSelectionOwner can generate a .ZN BadAtom error.

.ZN XConvertSelection requests that the specified selection be converted to the specified target type:

5 If the specified selection has an owner, the X server sends a .ZN SelectionRequest event to that owner.

5 If no owner for the specified selection exists, the X server generates a .ZN SelectionNotify event to the requestor with property .ZN None .

The arguments are passed on unchanged in either of the events. There are two predefined selection atoms: PRIMARY and SECONDARY.

.ZN XConvertSelection can generate .ZN BadAtom and .ZN BadWindow errors.


  • .ZN BadAtom
     A value for an Atom argument does not name a defined Atom.
  • .ZN BadWindow
     A value for a Window argument does not name a defined Window.