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

FreeBSD Manual Pages

  
 
  

home | help
XICHANGEHIERARCHY(3)					    XICHANGEHIERARCHY(3)

NAME
     XIChangeHierarchy - change the device hierarchy.

SYNOPSIS
     #include <X11/extensions/XInput2.h>

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

     display
	    Specifies the connection to the X server.

     num_changes
	    Specifies the number of elements in changes.

     changes
	    Specifies the changes to be made.

DESCRIPTION
	 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
	 effective.

	 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 labeled "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
	 error.

	 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.

	 XIDetachSlaveInfo detaches 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.

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

	 BadValue
		Some numeric value falls out of the allowed range.

				   05/18/2026		    XICHANGEHIERARCHY(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=XIChangeHierarchy&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help