XIChangeHierarchy.txt revision c27c18e8
1c27c18e8SmrgXICHANGEHIERARCHY(libmansuffix) 2c27c18e8Smrg=============================== 3c27c18e8Smrg 4c27c18e8SmrgNAME 5c27c18e8Smrg---- 6c27c18e8Smrg 7c27c18e8Smrg XIChangeHierarchy - change the device hierarchy. 8c27c18e8Smrg 9c27c18e8SmrgSYNOPSIS 10c27c18e8Smrg-------- 11c27c18e8Smrg 12c27c18e8Smrg #include <X11/extensions/XInput2.h> 13c27c18e8Smrg 14c27c18e8Smrg Status XIChangeHierarchy( Display *display, 15c27c18e8Smrg XIAnyHierarchyChangeInfo *changes, 16c27c18e8Smrg int num_changes); 17c27c18e8Smrg 18c27c18e8Smrg display 19c27c18e8Smrg Specifies the connection to the X server. 20c27c18e8Smrg 21c27c18e8Smrg num_changes 22c27c18e8Smrg Specifies the number of elements in changes. 23c27c18e8Smrg 24c27c18e8Smrg changes 25c27c18e8Smrg Specifies the changes to be made. 26c27c18e8Smrg 27c27c18e8SmrgDESCRIPTION 28c27c18e8Smrg----------- 29c27c18e8Smrg 30c27c18e8Smrg XIChangeHierarchy modifies the device hierarchy by creating or 31c27c18e8Smrg removing master devices or changing the attachment of slave 32c27c18e8Smrg devices. If num_changes is non-zero, changes is an array of 33c27c18e8Smrg XIAnyHierarchyChangeInfo structures. 34c27c18e8Smrg 35c27c18e8Smrg XIChangeHierarchy processes changes in order, effective 36c27c18e8Smrg immediately. If an error occurs, processing is aborted and the 37c27c18e8Smrg error is reported to the client. Changes already made remain 38c27c18e8Smrg effective. 39c27c18e8Smrg 40c27c18e8Smrg The list of changes is any combination of 41c27c18e8Smrg XIAnyHierarchyChangeInfo. The type of a hierarchy change can be 42c27c18e8Smrg XIAddMaster, XIRemoveMaster, XIAttachSlave or XIDetachSlave. 43c27c18e8Smrg 44c27c18e8Smrg typedef union { 45c27c18e8Smrg int type; 46c27c18e8Smrg XIAddMasterInfo add; 47c27c18e8Smrg XIRemoveMasterInfo remove; 48c27c18e8Smrg XIAttachSlave attach; 49c27c18e8Smrg XIDetachSlave detach; 50c27c18e8Smrg } XIAnyHierarchyChangeInfo; 51c27c18e8Smrg 52c27c18e8Smrg typedef struct { 53c27c18e8Smrg int type; /* XIAddMaster */ 54c27c18e8Smrg char* name; 55c27c18e8Smrg Bool send_core; 56c27c18e8Smrg Bool enable; 57c27c18e8Smrg } XIAddMasterInfo; 58c27c18e8Smrg 59c27c18e8Smrg typedef struct { 60c27c18e8Smrg int type; /* XIRemoveMaster */ 61c27c18e8Smrg int deviceid; 62c27c18e8Smrg int return_mode; 63c27c18e8Smrg int return_pointer; 64c27c18e8Smrg int return_keyboard; 65c27c18e8Smrg } XIRemoveMasterInfo; 66c27c18e8Smrg 67c27c18e8Smrg typedef struct { 68c27c18e8Smrg int type; /* XIAttachSlave */ 69c27c18e8Smrg int deviceid; 70c27c18e8Smrg int new_master; 71c27c18e8Smrg } XIAttachSlaveInfo; 72c27c18e8Smrg 73c27c18e8Smrg typedef struct { 74c27c18e8Smrg int type; /* XIDetachSlave */ 75c27c18e8Smrg int deviceid; 76c27c18e8Smrg } XIDetachSlaveInfo; 77c27c18e8Smrg 78c27c18e8Smrg XIAddMasterInfo creates a new master pointer and a new 79c27c18e8Smrg master keyboard labelled "name pointer" and "name keyboard" 80c27c18e8Smrg respectively. If sendCore is True, the devices will send core 81c27c18e8Smrg events. If enable is True, the device is enabled immediately. 82c27c18e8Smrg 83c27c18e8Smrg XIAddMasterInfo can generate a BadValue error. 84c27c18e8Smrg 85c27c18e8Smrg XIRemoveMasterInfo removes device and its paired master device. 86c27c18e8Smrg If returnMode is XIAttachToMaster, all pointers attached to 87c27c18e8Smrg device or its paired master device are attached to 88c27c18e8Smrg returnPointer. Likewise, all keyboards are attached to 89c27c18e8Smrg returnKeyboard. If returnMode is XIFloating, all attached 90c27c18e8Smrg devices are set to floating. 91c27c18e8Smrg 92c27c18e8Smrg XIRemoveMasterInfo can generate a BadValue and a BadDevice 93c27c18e8Smrg error. 94c27c18e8Smrg 95c27c18e8Smrg XIAttachSlaveInfo attaches device to newMaster. If the device 96c27c18e8Smrg is currently attached to a master device, it is detached from 97c27c18e8Smrg the master device and attached to the new master device. 98c27c18e8Smrg 99c27c18e8Smrg XIAttachSlaveInfo can generate a BadDevice error. 100c27c18e8Smrg 101c27c18e8Smrg XIDettachSlaveInfo deattaches device from the current master 102c27c18e8Smrg device and sets it floating. If the device is already floating, 103c27c18e8Smrg no changes are made. 104c27c18e8Smrg 105c27c18e8Smrg XIDetachSlaveInfo can generate a BadDevice error. 106c27c18e8Smrg 107c27c18e8Smrg XIChangeHierarchy generates an XIHierarchyEvent if any 108c27c18e8Smrg modifications were successful. 109c27c18e8Smrg 110c27c18e8SmrgDIAGNOSTICS 111c27c18e8Smrg----------- 112c27c18e8Smrg 113c27c18e8Smrg BadDevice 114c27c18e8Smrg An invalid device was specified. The device does not 115c27c18e8Smrg exist or is not a appropriate for the type of change. 116c27c18e8Smrg 117c27c18e8Smrg BadValue 118c27c18e8Smrg Some numeric value falls out of the allowed range. 119c27c18e8Smrg 120