Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help

       XIChangeHierarchy - change the device hierarchy.

       #include	<X11/extensions/XInput2.h>

       Status XIChangeHierarchy( Display *display,
				 XIAnyHierarchyChangeInfo *changes,
				 int num_changes);

	      Specifies	the connection to the X	server.

	      Specifies	the number of elements in changes.

	      Specifies	the changes to be made.

	   XIChangeHierarchy modifies the device hierarchy by creating or
	   removing master devices or changing the attachment of slave
	   devices. If num_changes is non-zero,	changes	is an array of
	   XIAnyHierarchyChangeInfo structures.	If num_changes is equal	or less	than
	   zero, XIChangeHierarchy does	nothing.

	   XIChangeHierarchy processes changes in order, effective
	   immediately.	If an error occurs, processing is aborted and the
	   error is reported to	the client. Changes already made remain

	   The list of changes is any combination of
	   XIAnyHierarchyChangeInfo. The type of a hierarchy change can	be
	   XIAddMaster,	XIRemoveMaster,	XIAttachSlave or XIDetachSlave.

	   typedef union {
	       int type;
	       XIAddMasterInfo add;
	       XIRemoveMasterInfo remove;
	       XIAttachSlave attach;
	       XIDetachSlave detach;
	   } XIAnyHierarchyChangeInfo;

	   typedef struct {
	       int type; /* XIAddMaster	*/
	       char* name;
	       Bool send_core;
	       Bool enable;
	   } XIAddMasterInfo;

	   typedef struct {
	       int type; /* XIRemoveMaster */
	       int deviceid;
	       int return_mode;
	       int return_pointer;
	       int return_keyboard;
	   } XIRemoveMasterInfo;

	   typedef struct {
	       int type; /* XIAttachSlave */
	       int deviceid;
	       int new_master;
	   } XIAttachSlaveInfo;

	   typedef struct {
	       int type; /* XIDetachSlave */
	       int deviceid;
	   } XIDetachSlaveInfo;

	   XIAddMasterInfo creates a new master	pointer	and a new
	   master keyboard labelled "name pointer" and "name keyboard"
	   respectively. If sendCore is	True, the devices will send core
	   events. If enable is	True, the device is enabled immediately.

	   XIAddMasterInfo can generate	a BadValue error.

	   XIRemoveMasterInfo removes device and its paired master device.
	   If returnMode is XIAttachToMaster, all pointers attached to
	   device or its paired	master device are attached to
	   returnPointer. Likewise, all	keyboards are attached to
	   returnKeyboard. If returnMode is XIFloating,	all attached
	   devices are set to floating.

	   XIRemoveMasterInfo can generate a BadValue and a BadDevice

	   XIAttachSlaveInfo attaches device to	new_master. If the device
	   is currently	attached to a master device, it	is detached from
	   the master device and attached to the new master device.

	   XIAttachSlaveInfo can generate a BadDevice error.

	   XIDettachSlaveInfo deattaches device	from the current master
	   device and sets it floating.	If the device is already floating,
	   no changes are made.

	   XIDetachSlaveInfo can generate a BadDevice error.

	   XIChangeHierarchy generates an XIHierarchyEvent if any
	   modifications were successful.

		  An invalid device was	specified. The device does not
		  exist	or is not a appropriate	for the	type of	change.

		  Some numeric value falls out of the allowed range.

				  06/19/2019		  XICHANGEHIERARCHY(3)


Want to link to this manual page? Use this URL:

home | help