summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--man/XIChangeHierarchy.txt3
-rw-r--r--src/XIHierarchy.c3
2 files changed, 5 insertions, 1 deletions
diff --git a/man/XIChangeHierarchy.txt b/man/XIChangeHierarchy.txt
index ac667bc..205f40f 100644
--- a/man/XIChangeHierarchy.txt
+++ b/man/XIChangeHierarchy.txt
@@ -30,7 +30,8 @@ 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.
+ 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
diff --git a/src/XIHierarchy.c b/src/XIHierarchy.c
index d30ea29..09e6f93 100644
--- a/src/XIHierarchy.c
+++ b/src/XIHierarchy.c
@@ -52,6 +52,9 @@ XIChangeHierarchy(Display* dpy,
if (_XiCheckExtInit(dpy, XInput_2_0, info) == -1)
return (NoSuchExtension);
+ if (num_changes <= 0)
+ return Success;
+
GetReq(XIChangeHierarchy, req);
req->reqType = info->codes->major_opcode;
req->ReqType = X_XIChangeHierarchy;