]>
NAME
SYNOPSIS
DESCRIPTION
DIAGNOSTICS
XIChangeHierarchy − change the device hierarchy.
#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.
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 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
error.
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.
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.