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.

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 newMaster. 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.

More Linux Commands

Tcl_ExprString(3) - evaluate an expression - Linux man page
These four procedures all evaluate the expression given by the expr argument and return the result in one of four different forms. The expression can have any o

mvwins_wstr(3ncurses) - insert a wide-character string into
These routines insert a wchar_t character string (as many characters as will fit on the line) before the character under the cursor. All characters to the right

set_menu_spacing(3menu) - Control spacing between menu items
The function set_menu_spacing sets the spacing information for the menu. Its parameter spc_description controls the number of spaces between an item name and an

cprojf(3) - project into Riemann Sphere - Linux manual page
These functions project a point in the plane onto the surface of a Riemann Sphere, the one-point compactification of the complex plane. Each finite point z proj

aio_return(3) - get return status of asynchronous I/O operat
The aio_return() function returns the final return status for the asynchronous I/O request with control block pointed to by aiocbp. (See aio(7) for a descriptio

librasqal(3) - Rasqal RDF query library - Linux manual page
The Rasqal library provides a high-level interface to RDF query parsing, query construction, query execution over an RDF graph and query results manipulation an

Dumpvalue(3pm) - provides screen dump of Perl data..........
Creation A new dumper is created by a call $d = Dumpvalue-&gt;new(option1 =&gt; value1, option2 =&gt; value2) Recognized options: arrayDepth, hashDepth Print only first

mem(4) - system memory, kernel memory and system ports......
mem is a character device file that is an image of the main memory of the computer. It may be used, for example, to examine (and even patch) the system. Byte ad

SDL_SemWait(3) - Lock a semaphore and suspend the thread if
SDL_SemWait() suspends the calling thread until either the semaphore pointed to by sem has a positive value, the call is interrupted by a signal or error. If th

xmlgraphics-fop-fontlist(1) - (unknown subject) (Man Page)
Classname: org.apache.fop.tools.fontlist.FontListMain xmlgraphicsfopfontlist [c CONFIG_FILE] [f MIME] [[outputdir | outputfile] [fontfamily]] OPTIONS ...

lroundl(3) - round to nearest integer, away from zero.......
These functions round their argument to the nearest integer value, rounding away from zero, regardless of the current rounding direction (see fenv(3)). Note tha

chattr(1) - change file attributes on a Linux file system...
chattr changes the file attributes on a Linux file system. The format of a symbolic mode is +-=[aAcCdDeijsStTu]. The operator + causes the selected attributes t

We can't live, work or learn in freedom unless the software we use is free.